0
点赞
收藏
分享

微信扫一扫

继承的重写

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关键字的三种用法

继承的重写_java_02

继承的重写_子类_03

5.This关键字的三种用法

继承的重写_父类_04

继承的重写_父类_05

继承的重写_子类_06

6.Super和this关键字图解

继承的重写_子类_07

7 java继承的三个特点

继承的重写_子类_08



举报

相关推荐

0 条评论