Java方法重写规则
-
父类被重写的方法与子类重写的方法名和形参列表必须相同。
-
子类重写方法的权限修饰符不小于父类被重写的方法的权限修饰符。 子类不能重写父类中声明为private权限修饰方法。
-
关于返回值类型:
- 父类被重写的方法返回值是void,则子类重写的方法的返回值类型必须是void。
- 父类被重写的方法的返回值类型是基本数据类型,则子类重写方法的返回值类型必须与被重写的方法的返回值 类型一致。
- 父类被重写的方法的返回值类型是引用数据类型,则子类重写方法的返回值类型可以与被重写方法的返回值类型相同或 是被重写方法的返回值类型的子类。
- 子类重写的方法抛出的异常类型可以与父类被重写的方法抛出的异常类型相同,或是父类被重写方法抛出的异常类型的子类。
this关键字的使用
- 出现同名属性,用this.修饰成员变量,没有使用的则为局部变量
- 无同名属性,就近原则
- 使用this调用构造器
- 格式:this.(形参列表)
- 可以在类的构造器中,调用当前类的其他构造器
- 要求:this.(形参列表)必须声明在当前构造器的首行
- this.(形参列表)在构造器中最多声明一个
- 如果一个类中声明了n个构造器,则最多有n-1个构造器可以声明有this.(形参列表)的结构
super关键字的使用
子类继承父类后,我们就可以在子类的方法或构造器中,调用父类声明的属性或方法,需要使用super.的结构,表示调用父类的属性和方法。 一般情况下,我们可以考虑省略super.的结构,但是,如果出现了子类重写了父类的方法或子父类中出现了同名的属性时,则必须使用super声明,显示的调用父类被重写的方法或父类中声明的同名的属性。