小于博客 小于博客
首页
  • Java学习笔记
  • Docker专区
  • 实战教程
  • Shell
  • 内存数据库
  • Vue学习笔记
  • Nginx
  • Php
  • CentOS
  • Docker
  • Gitlab
  • GitHub
  • MySql
  • MongoDB
  • OpenVPN
  • 配置文件详解
  • Other
  • ELK
  • K8S
  • Nexus
  • Jenkins
  • 随写编年
  • 电影音乐
  • 效率工具
  • 博客相关
  • 最佳实践
  • 迎刃而解
  • 学习周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • 网站状态 (opens new window)
    • json2go (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

小于博客

行者常至,为者常成
首页
  • Java学习笔记
  • Docker专区
  • 实战教程
  • Shell
  • 内存数据库
  • Vue学习笔记
  • Nginx
  • Php
  • CentOS
  • Docker
  • Gitlab
  • GitHub
  • MySql
  • MongoDB
  • OpenVPN
  • 配置文件详解
  • Other
  • ELK
  • K8S
  • Nexus
  • Jenkins
  • 随写编年
  • 电影音乐
  • 效率工具
  • 博客相关
  • 最佳实践
  • 迎刃而解
  • 学习周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • 网站状态 (opens new window)
    • json2go (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • Java学习笔记

    • RequestBody和RequestParam区别全面详细
    • BigDecimal用法
    • Java笔试易错点记录
      • 1.子类构造方法如何调用
      • 2.子父类调用
    • jsencrypt.js前端参数RSA加密
    • SpringBoot调用http请求的6种方式
    • vue实现点击不同按钮展示不同内容
    • 精髓代码随手笔记
    • 经典代码汇总
    • 项目实战问题笔记
    • CentOS7下安装mysql5.7
    • SpringBoot 快速实现 api 加密!
  • Docker专区

  • Shell编程

  • 实战教程

  • 内存数据库

  • Vue学习笔记

  • 编程世界
  • Java学习笔记
小于博客
2024-01-18
目录

Java笔试易错点记录

Java笔试易错点记录

# 1.子类构造方法如何调用

使用示例:

public class Base {
    public Base(String s){
        System.out.println("B");
    }
}
1
2
3
4
5
public class Derived extends Base{
    public Derived(String s){
        System.out.println("D");
    }
    public static void main(String[] args) {
        new Derived("C");
    }
}
1
2
3
4
5
6
7
8

输出结果:

    public Derived(String s){
        System.out.println("D");
    }
    上面代码编译报错
1
2
3
4

改成如下代码即可输出BD(或者个base类加一个无参构造函数也行):

public Derived(String s){
    super(s);
    System.out.println("D");
}
1
2
3
4

原因分析:

在java中规定:一个父类可以有多个子类,但是一个子类只能有一个父类。子类可以通过extends关键字来继承父类。 通过继承,子类可以得到父类除构造函数以外所有的成员(包括成员变量和成员函数),但是要注意得到并不等于可以随便使用。 在创建子类对象时,父类的构造方法会先执行,因为子类中所有构造方法的第一行有默认的隐式super();语句,它是用来访问父类中的空参数构造方法,进行父类成员的初始化操作 this()是调用本类的构造方法,super()是调用父类的构造方法,且两条语句不能同时存在 无论如何,子类的所有构造方法,直接或间接必须调用到父类构造方法;子类的构造方法什么都不写,默认的构造方法第一行super()

# 2.子父类调用

使用示例:

public class Base {
    public Base(){
        foo();
    }
    private void foo() {
        System.out.println("base");
    }
}
1
2
3
4
5
6
7
8
public class Derived extends Base{
    public void foo(String s){
        System.out.println("Derived");
    }
    public static void main(String[] args) {
        new Derived();
        new Base();
    }
}
1
2
3
4
5
6
7
8
9

输出结果是:

base base
1
上次更新: 2024/02/03, 13:17:04

← BigDecimal用法 jsencrypt.js前端参数RSA加密→

最近更新
01
SpringBoot 快速实现 api 加密!
03-21
02
SpringBoot整合SQLite
03-07
03
SpringBoot配置使用H2数据库的简单教程
02-21
更多文章>
Theme by Vdoing | Copyright © 2017-2024 | 点击查看十年之约 | 豫ICP备2022014539号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式