继承---super和方法重写

Super

子类中调用父类的方法/成员变量

私有的东西无法使用super调用

#调用父类的name属性:
super.name

#调用父类的方法
super.show()



子类的无参构造中会隐含一个父类的无参构造

即super();

若显性地调用super();作为构造器,则必须放在子类构造器的第一行.

同理,在子类自身的构造函数中调用另一个构造函数,也必须将此构造函数放在第一行.

#此为调用自身的构造器
public classname(){
	this.classname(name);
	System.out.println(name);
}

#此为调用父类的构造器
public classname(){
	super();
	System.out.println(name);
}

所以这两个构造器互斥,不能同时存在!

同时,由于子类默认调用父类的无参构造,当父类中未定义无参构造方法时,程序会报错.

为规避这一点,写程序时,若存在有参构造函数,则应尽量为每个类都补充无参构造方法.

屏幕截图 2025-10-16 145328


重写

重写都是方法的重写,和属性无关

#重写
@Override
#'@'后的内容为注解,是有功能的注释

静态的方法调用只和左边的数据类型有关(static修饰的方法)


重写是指用@Override修饰过的,子类和父类同名非静态方法

即使左边的对象的数据类型不同,只要右边为子类重写过的方法,则只调用子类的方法.


重写的要求:

  1. 有继承关系
  2. 子类重写父类的方法
  3. 方法名相同
  4. 参数类型相同
  5. 修饰符:范围可以扩大但不能缩小
  6. 抛出的异常:可以被缩小但不能扩大

快捷键: alt+insert : Override

Posted on 2025-10-16 15:16  miloandmicah  阅读(1)  评论(0)    收藏  举报