zoukankan      html  css  js  c++  java
  • Java继承--子父类中的构造函数

    子父类中的构造函数的特点:  

    1.在子类构造对象时,发现,访问子类构造函数时,父类构造函数也运行了。
       原因是:在子类的构造函数中第一行有一个默认的隐式语句。 super();

       类似于this();   this();调用的是本类的构造函数

    2.子类构造函数默认调用的是父类中的空参数构造函数,如果需要调用父类中带参数的构造函数,可以在子类构造函数中定义。如:super(6);

    3.如果父类中没有定义空参数构造函数,那么子类的构造函数必须用super明确要调用父类中哪个构造函数。

    4.同时子类构造函数中如果使用this调用了本类构造函数时,那么super就没有了,因为super和this都只能定义第一行,所以只能有一个。但是可以保证的是,子类中肯定会有其他的构造函数访问父类的构造函数。

    5.Object是所有类的父类。

    注意:supre语句必须要定义在子类构造函数的第一行。因为父类的初始化动作要先完成。

    例:

     1 class Fu
     2 {
     3     int num ;
     4     Fu()
     5     {
     6         num =10;
     7         System.out.println("A fu run");
     8     }
     9     Fu(int x)
    10     {
    11         System.out.println("B fu run..."+x);
    12     }
    13 }
    14 class Zi extends Fu
    15 {
    16     int num;
    17     Zi()
    18     {
    19         //super();//调用的就是父类中的空参数的构造函数。
    20                   //类似于this() 调用的是本类的构造函数 
    21         
    22         System.out.println("C zi run"+num);
    23     }
    24     Zi(int x)
    25     {
    26         this();
    27 //        super(x); //如果需要调用父类中带参数的构造函数,可以在子类构造函数中定义。
    28         System.out.println("D zi run "+x);
    29     }
    30 }
    31 
    32 class  ExtendsDemo4
    33 {
    34     public static void main(String[] args) 
    35     {
    36         new Zi(6);
    37     }
    38 }
    39 class Demo//extends Object  //Object是所有类的父类
    40 {
    41     /*
    42     
    43     Demo()
    44     {
    45         super();
    46         return;
    47     }
    48     */
    49 }
  • 相关阅读:
    VUE学习一,安装及Hello World
    609. 在系统中查找重复文件
    451. 根据字符出现频率排序
    面试题 10.02. 变位词组
    142. 环形链表 II
    面试题 16.24. 数对和
    151. 翻转字符串里的单词
    1207. 独一无二的出现次数
    80. 删除排序数组中的重复项 II
    1365. 有多少小于当前数字的数字
  • 原文地址:https://www.cnblogs.com/kkkky/p/6383451.html
Copyright © 2011-2022 走看看