java 第33节 实现继承

Posted 岑亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 第33节 实现继承相关的知识,希望对你有一定的参考价值。

2016-06-29

实现继承
super();
在调用子类构造器时,如果没有显式写出super,那么编译器会默认加上super()无参构造器。
如果想调用父类有参构造器,那么必须显式调用,编译器不会默认加上的。
创建子类对象的过程,就是从底层基类开始往上,一层层地调用构造方法。
super() super(参数)都必须放在方法的第一个语句中。

package com.java1995;

public class A {
    
    A(){
        System.out.println("调用A的无参构造方法");
    }
    
    A(int i){
        System.out.println("调用A的有参构造方法");
    }

}

class B extends A{
    B(){
        System.out.println("调用B的无参构造方法");
    }
    
    B(int i){
        /**
         * super()、super(参数)都必须放在方法的第1个语句中
         * 显式调用、父类有参构造器
         */
        super(i);
        System.out.println("调用B的有参构造方法");
    }
}

class C extends B{
    C(){
        /**
         * super();
         * 在调用子类的构造器时,
         * 如果没有显式写出super(),
         * 编译器默认调用父类的无参构造器;
         * 如果想调用父类的有参构造器,必须显式调用。
         */
        super();
        System.out.println("调用C的无参构造方法");
    }
    
    C(int i){
        /**
         * 显式调用、父类有参构造器
         */
        super(i);
        System.out.println("调用C的有参构造方法");
    }
}
package com.java1995;

public class Test {
    
    public static void main(String[] args) {
        //C-->B-->A
        //C c=new C();
        C c=new C(1);
        
    }

}

技术分享

【参考资料】

[1] Java轻松入门经典教程【完整版】

以上是关于java 第33节 实现继承的主要内容,如果未能解决你的问题,请参考以下文章

java 第34节 继承关系

java 第54节 继承Thread类创建线程

阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第3节 接口_14_接口之间的多继承

阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第2节 抽象类_9_接口的私有方法定义

阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第7节 内部类_14_匿名内部类的注意事项

阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第2节 抽象类_5_接口的默认方法定义