方法的重写
override/overwrite
- 重写: 子类继承父类后,可以对父类中的同名参数的方法进行覆盖操作
对父类中的方法在子类中进行重写。
-
应用 :当创建子类对象以后,通过子类对象调用子父类中的同名同参数的方法时,实际上执行的是子类重写过后的父类的方法
-
重写的规定
方法的声明:权限修饰符 返回值类型 方法名(形参列表)throws 异常的类型{
//方法体}
-
子类重写的方法的方法名和形参列表与父类中被重写的方法的方法名和形参列表相同
-
子类重写的方法的权限修饰符不小于父类被重写方法的权限修饰符,否则会出现下面的报错
Visibility
- 子类中不能重写父类中声明为private的方法:
-
测试结果为:
子类并没有重写覆盖父类的private方法;
-
返回值类型:
- 父类被重写的方法的返回值类型是void,则子类重写的方法的返回值类型只能是void
- 父类被重写的方法的返回值类型是A类型,则子类重写的方法的返回值类型可以是A类或A类的子类
- 父类被重写的方法的返回值类型是基本数据类型,则子类重写的方法的返回值类型必须是相同的基本数据类型
-
子类和父类中的同名同参数的方法要么都声明为非static的(考虑重写),要么都声明为static的(不是重写)
static 不可被重写;因为随着类加载,不可被覆盖。