继承相关知识

继承的基本语法

class 子类  extends 父类{

}

1.子类就会自动拥有父类定义的属性和方法

2.父类又叫超类,基类

3.子类又叫派生类 

 

继承的注意事项与细节问题

1.子类继承了父类所有的属性和方法,但是私有属性和方法不能在子类直接访问,要通过父类公共方法区访问

父类

 1 package com.test;
 2 
 3 public class Father {//父类
 4     //四个属性
 5     private  int n1=100;
 6     private  int n2= 20;
 7     int n3 = 50;
 8     private int n4=60;//私有的,不能被直接访问,需要通过创建一个公共方法,可以间接被访问
 9     //创建构造器
10     public  Father(){
11         System.out.println("Father()....");
12     }
13     //n4创建一个公共方法,
14     public int getN4(){
15         return n4;
16     }
17     //创建4个方法
18     public void test1(){//公共的方法,可以直接被子类访问;
19         System.out.println("test1");
20     }
21     public  void test2(){
22         System.out.println("test2");
23     }
24     public void test3(){
25         System.out.println("test3");
26     }
27     private void test4(){//私有的方法,不能被子类直接访问
28         System.out.println("test4");
29     }
30     public  void  Fix(){//私有的方法,不能被子类直接访问,但可以通过公共方法间接访问
31         test4();
32     }
33 }

子类;

 1 package com.test;
 2 
 3 public class Son extends Father {//子类继承父类
 4     public Son(){
 5         System.out.println("Son()...");
 6     }
 7     public  void use(){
 8         //子类继承了所有的属性和方法,但是私有属性和方法不能在子类直接访问
 9        // System.out.println(n1+n2+n3+n4);//n1,n2,n4是私有的,所以不能直接访问
10         test1();
11        // test4();//test4是私有的,所以不能直接访问
12         test2();
13         Fix();//通过公共的fix方法,访问test4
14         //通过父类提供的间接公共方法去访问
15         System.out.println("n4="+getN4());
16 
17     }
18 
19 }

 2.子类必须调用父类的构造器,完成父类的初始化

3.当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器则必须在子类的构造器中用

super去指定使用父类的哪个构造器完成对父类的初始化工作,否则编译不会通过。

4.如果希望指定去调用父类的某个构造器,则显式的调用一下;(可以在子类中的构造器中使用super()去指定父类中相应的构造器(形参里面写父类构造器中相对应的实参);或者什么都不写)

5.super在使用时,必须放在构造器的第一行(只能在构造器中使用)

6.super()和this()都只能放在构造器的第一行,因此这两个方法不能共存在一个构造器里面

7.java所有类都是Object类的子类   

8.父类构造器的调用不限于直接父类,将一直往上追溯到Object类 

9.java子类最多只能继承一个父类(指直接继承)即java是单继承机制

    思考如何让A类继承B类和c类

10.不能滥用继承,子类和父类之间必须满足is-a的逻辑关系

posted @ 2022-03-05 18:25  捞月亮的渔夫  阅读(141)  评论(0)    收藏  举报