10.1类的继承

1、在JAVA中使用extends关键字来表示两个类的继承关系。
2、a、子类可以使用spuer()语句调用父类中的构造方法;
      b、子类没有权限调用父类中被修饰为private的方法,只可以调用父类中修饰为public或protected成员方法。
3、继承并不只是扩展父类的功能,还可以重写父类的成员方法,在继承中还有一种特殊的重写方法,子类与父类的成员方法返回值、方法名称、参数类型及个数完全相同,唯一不同的是方法实现的内容,这种特殊重写方法被称为重构。
4、a、当重写父类方法时,修改方法的修饰权只能从小的范围到大的范围改变,例如父类中的doSomething()方法的修饰权未protecteed,继承后子类中的方法doSomething()的修饰权只能修改为public,不能修改为private。
      b、重写的方绘制类型必须是父类中同一方法返回值类型的子类。
5、在实例化子类对象时,java编译器会在子类的构造方法中自动调用父类的无参构造方法(注意:父类的有参构造方法并不能被自动调用,只能依赖于super关键字显示第调用父类的构造方法)。

例10.1

 1 public class Test {
 2     public Test() {    //构造方法
 3         //SomeSentence
 4     }
 5     protected void doSomething() {   //成员方法
 6         //SomeSentence
 7     }
 8     protected Test doit() {  //方法返回值类型为Test类型
 9         return new Test();
10     }
11 }
12 
13 class Test2 extends Test{          //继承父类方法
14     public Test2() {            //构造方法
15         super();                   //调用父类方法
16         super.doSomething();    //调用父类成员方法
17     }
18     public void doSomething() {            //重写父类方法
19         //SomeSentence
20     }
21     protected Test2 doit() {            //重写父类方法,返回值Test2类型
22         return new Test2();
23     }
24     public void doSomethingNew() {       //新增方法
25         //SomeSentence
26     }
27 }
View Code

例10.2

 1 class Parent { // 父类
 2     Parent() {
 3         System.out.println("调用父类的parent()构造方法");
 4     }
 5 }
 6 
 7 class SubParent extends Parent { // 继承Parent类
 8     SubParent() {
 9         System.out.println("调用子类的SubParent()构造方法");
10     }
11 }
12 
13 public class Subroutine extends SubParent { // 继承SubParent类
14     Subroutine() {
15         System.out.println("调用子类的Subroutine()构造方法");
16     }
17     
18     public static void main(String[] args) {
19         Subroutine s = new Subroutine(); // 实例化子类对象
20     }
21 }
View Code

结果:

原文地址:https://www.cnblogs.com/studycode/p/9532852.html