返回首页

java中易忘易错的点

2026-09-10
875 字 4 分钟

scanner使用之后要记得关闭: scanner.close(); 2. 遍历数组时,循环条件记得使用数组长度 (int index=0;index<name.length;index++) 3. 类名使用大驼峰,数组变量使用小驼峰且用复数表达多个对象 4. 方法重载是同一个类中,定义的多个同名方法,但它们的参数列表必须不同, 方法重写是在子类中对父类的方法进行改变

  • 重载:方法名相同,参数列表不同。

重写:子类重新实现父类已有的方法。 父类编译,由父类判定能调用什么方法 子类运行,由子类决定执行哪个重写版本

  • 方法名相同
  • 参数列表相同
  • 返回类型相同或兼容
  • 子类访问权限不能比父类更严格
  • 建议添加 @Override 重载通常是在同一个类中定义多个同名方法,要求参数数量、类型或顺序不同。重写发生在有继承关系的父子类之间,子类重新实现父类已有的方法,方法名和参数列表必须相同。重载解决“同一功能接收不同参数”的问题,重写解决“不同子类提供不同实现”的问题。

多态 左边,引用变量的声明类型,决定编译时允许调用哪些方法 右边,实际对象类型,决定运行时执行哪个重写版本 标准定义: 使用父类类型统一引用不同的子类对象,调用一个方法时,不同子类对象可以表现出不同的行为。 三个条件:

存在继承关系
子类重写父类方法
父类引用指向子类对象

Java规定:创建子类对象前,必须先调用父类构造方法,完成父类部分的初始化。

如果子类没有写 super(...),编译器只会自动尝试添加:

super();

但父类现在只有:

父类名(String name)

没有 父类名(),所以会编译失败。super(name) 是为了明确调用父类现有的带参数构造方法。 2. super(name) 的位置 必须是子类构造方法中的第一条有效语句。

子类构造方法必须先调用父类构造方法。如果没有显式调用,编译器会尝试添加 super()。由于父类只有带 name 参数的构造方法,没有无参数构造方法,所以子类必须显式使用 super(name),而且它必须放在子类构造方法的第一条有效语句。创建子类对象时,父类构造方法先执行,然后执行子类构造方法。 3.

this.skill = skill;
  • this.skill:当前对象的成员属性。
  • 右侧 skill:构造方法接收到的参数。
  • 作用:把参数保存到当前对象中。
super(name);
  • 调用父类的带参数构造方法。
  • 必须位于子类构造方法的第一条有效语句。
  • 作用是先完成父类部分的初始化。
super.work();

子类重写的 work() 中调用 super.work(),执行的是父类版本还是子类版本?它会不会创建新的父类对象?

  • 调用父类版本的普通 work() 方法。
  • 即使子类已经重写 work(),也可以通过它保留父类原来的行为。
  • 它不会创建新的父类对象。
  • 例如:
@Override
public void work() {
super.work();
System.out.println("Java开发人员编写代码");
}

会先执行父类内容,再执行子类新增的内容。

java中易忘易错的点
https://335264.xyz/posts/java中易忘记的点/
作者
刺儿菜
发布于
2026-09-10
许可协议
CC BY-NC-SA 4.0
Comments

评论