zoukankan      html  css  js  c++  java
  • JavaSE 基础 第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轻松入门经典教程【完整版】

  • 相关阅读:
    MySQL-MMM方案
    MySQL双主复制
    MySQL主从复制
    Keepalived实现高可用
    CentOS7.2 部署Haproxy 1.7.2
    博客园写随笔时用数学公式
    Java中有三种移位运算符
    VS Code配置C/C++环境
    Visual Studio Code 如何编写运行 C、C++ 程序?
    头一次知道“原地算法”?!
  • 原文地址:https://www.cnblogs.com/cenliang/p/5627516.html
Copyright © 2011-2022 走看看