继承的重写
1.继承中方法的重写
重写(override)
概念:在继承关系中,方法的名称一样,参数列表也一样
重写(overide):方法的名称一样,参数列表【也一样】。也叫方法的覆盖,覆写。
重载(overload):方法的名称一样,参数列表【不一样】
方法覆盖重写的特点:创建的是子类对象,则优先用子类方法。
2.方法覆盖重写的注意事项:
2.1必须保证父子类之间的方法的名称相同,参数列表也相同
@override:写在方法的前面,用来检测是不是有效的正确覆盖重写
这个注释就算不写,只要满足要求,也是正确的方法覆盖重写
2.2.子类方法的返回值必须【小于等于】父类方法的返回值类型
小扩展:java.lang.object类是所有类的公共最高父类。java.lang.String就是object的子类
2.3子类方法的权限必须【大于等于】父类方法的权限修饰符。
小扩展:public>protected>(default)>private
备注:(default)不是关键字default,而是什么都不写,留空。
3.手机案例

1 public class Phone { 2 //老手机 3 public void call(){ 4 System.out.println("打电话"); 5 } 6 public void send(){ 7 System.out.println("发短信"); 8 } 9 public void show(){ 10 System.out.println("显示号码"); 11 } 12 } 13 14 15 16 //定义的一款新手机,使用老手机作为父类。 17 public class NewPhone extends Phone { 18 @Override 19 public void show(){ 20 System.out.println("显示号码"); 21 System.out.println("显示图片"); 22 } 23 24 } 25 26 27 28 29 public class Demo01Phone { 30 public static void main(String[] args) { 31 Phone p1 = new Phone(); 32 p1.call(); 33 p1.send(); 34 p1.show(); 35 System.out.println("________________________"); 36 37 NewPhone np = new NewPhone(); 38 np.call(); 39 np.send(); 40 np.show(); 41 42 } 43 }
4.继承中构造方法的访问特点
继承关系中,父子类构造方法的访问特点:
1.子类构造方法当中有一个隐含的“super()”调用,所以一定是先调用父类构造,后执行子类构造
2.子类构造可以通过super关键字来调用父类重载构造。
3.super的父类构造调用,必须是子类构造方法的第一个语句,不能一个子类构造调用多次super构造
总结:子类必须调用父类构造方法,不写则赠送super(),写了则用写的指定super调用,super只能有一个,还必须是第一个。
1 public class Fu0 { 2 public Fu0(){ 3 System.out.println("父类无参构造"); 4 } 5 public Fu0(int num){ 6 System.out.println("父类有参构造!"); 7 } 8 } 9 10 11 12 public class Zi0 { 13 public Zi0(){ 14 super(); //在调用父类无参构造方法 15 // super(20);//在调用父类重载的构造方法 16 System.out.println("子类构造方法"); 17 } 18 public void method(){ 19 // super(); //错误写法!只有子类构造方法,才能调用父类构造方法 20 } 21 } 22 23 24 public class DemoConstructor { 25 public static void main(String[] args) { 26 Zi0 zi = new Zi0(); 27 } 28 29 }
4.super关键字的三种用法


5.This关键字的三种用法



6.Super和this关键字图解

7 java继承的三个特点


浙公网安备 33010602011771号