10.1类的继承
Posted studycode
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }
例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 }
结果:
以上是关于10.1类的继承的主要内容,如果未能解决你的问题,请参考以下文章