方法重写
方法重写概述
子类中出现了和父类中一模一样的方法声明(方法名,参数列表,返回值类型),也被称为方法覆盖,方法复写。实际运行时,运行的是子类重写过后的这个方法
@Override //注解
@Override 这个注解的作用,是用来检测此方法是不是重写父类的方法
方法重写的应用
当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法。这样,即沿袭了父类的功能,又定义了子类特有的内容。
方法重写的注意事项
- 父类中私有方法不能被重写,因为子类不能继承父类的私有方法
- 父类构造方法,不能重写,构造方法没有继承一说
- 子类重写父类方法时,访问权限不能更低,可以跟父类的一样,或者比父类的高,最好就一致
//public>protected>缺省的>private
- 静态方法,不参与重写
- 子类重写父类方法的时候,最好声明一模一样。
案例演示
public class Phone {
public Phone() {
System.out.println("构造方法执行");
}
public void call() {
System.out.println("打电话");
}
public void send() {
System.out.println("发短信");
}
}
public class Iphone extends Phone{
public void palyGame(){
System.out.println("玩游戏");
}
@Override
public void call() {
super.call();
System.out.println("高清视频通话");
}
}
public class MyTest {
public static void main(String[] args) {
Iphone iphone = new Iphone();
iphone.call();
iphone.send();
iphone.palyGame();
}
}
运行结果
构造方法执行
打电话
高清视频通话
发短信
玩游戏