zoukankan      html  css  js  c++  java
  • 继承2

    1、子类继承父类时构造方法的调用规则如下:

    (1)如果子类的构造方法中没有通过super显示调用 父类的有参构造方法,也没有通过this显示调用其自身的其它构造方法,则系统会默认先调用父类的无参构造方法,在这种情况下是否写super();语句,效果都一样:

    实例如下:

     1 package com.cn.jicheng2;
     2 /*
     3  * 父类A
     4  */
     5 public class A {
     6     private int age;
     7     private String name;
     8     public A(){
     9         
    10     }
    11     public A(String name,int age){
    12         this.name=name;
    13         this.age=age;
    14     }
    15     public void show(){
    16         System.out.println("姓名是:"+this.name+"
    年纪是:"+this.age);
    17     }
    18 }
     1 package com.cn.jicheng2;
     2 /*
     3  * 子类B
     4  */
     5 public class B extends A{
     6     private String sex;
     7 
     8     public String getSex() {
     9         return sex;
    10     }
    11 
    12     public void setSex(String sex) {
    13         this.sex = sex;
    14     }
    15     
    16 }
    1 package com.cn.jicheng2;
    2 
    3 public class Test {
    4     public static void main(String[] args) {
    5         B b=new B();//这个测试类中,实例了子类的对像,符合第一条规则,默认也会调用父类的无参数构造方法,父类的无参构造方法就是new A();
    6         //所以子类才可以调用父类的方法
    7         b.show();
    8     }
    9 }

    (2)如果子类的构造方法中通过super显示调用父类的有参构造方法,那么将执行父类相应的构造方法,而不执行父类的无参构造方法

    package com.cn.jicheng2;
    /*
     * 父类A
     */
    public class A {
        private int age;
        private String name;
        public A(){
            System.out.println("父类的无参构造方法输出");
        }
        public A(String name,int age){
            this.name=name;
            this.age=age;
        }
        public void show(){
            System.out.println("姓名是:"+this.name+"
    年纪是:"+this.age);
        }
    }
    
    
    package com.cn.jicheng2;
    /*
     * 子类B
     */
    public class B extends A{
        private String sex;
    
        public B(String name,int age) {
            super(name,age);//调父类的有参构造方法
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
        
    }
    
    package com.cn.jicheng2;
    
    public class Test {
        public static void main(String[] args) {
            B b=new B("jj",12);
            b.show();
        }
    }

    (3)如何子类的构造方法中通过this显示调用自身的其它构造方法,在相应构造方法中应用以上两条规则。

  • 相关阅读:
    Shell编程-02-Shell变量
    Linux 下强大的查找命令find
    DevOps 学院
    史上最详细、最全面的Hadoop环境搭建
    Linux 中10个命令链接操作符,帮助新手快速入门运维!
    25个Linux性能监控工具
    一文详解 Linux系统常用监控工具
    ansible 安装指南
    Tomcat管理页面
    Tomcat基础知识
  • 原文地址:https://www.cnblogs.com/sincoolvip/p/5499500.html
Copyright © 2011-2022 走看看