Java繼承子類的構(gòu)造函數(shù)方式
Java繼承子類的構(gòu)造函數(shù)
每個Java類都必須有構(gòu)造函數(shù)
如果沒有顯式定義構(gòu)造函數(shù),Java編譯器自動為該類產(chǎn)生一個空的無形參構(gòu)造函數(shù)。
如果已經(jīng)有了顯式的有參構(gòu)造函數(shù),編譯器就不會再為它自動產(chǎn)生了。
每個子類的構(gòu)造函數(shù)的第一句話
都默認調(diào)用父類的無參數(shù)構(gòu)造函數(shù)super()
除非子類的構(gòu)造函數(shù)第1句話是super,而且super語句必須放在第一條,不能出現(xiàn)連續(xù)兩條super語句。
如果構(gòu)造函數(shù)的第1句話不是super,編譯器會自動增加一句super () ;如果構(gòu)造函數(shù)第1句是程序員自己寫的super語句,編譯器就不會自動增加了。
public class A {
public A()
{
System.out.println("11111");
}
public A(int a)
{
System.out.println("33333");
}
}public class B extends A{
public B()
{
//super(); 編譯器自動增加super()
//所以先調(diào)用父類中的無慘構(gòu)造函數(shù)
System.out.println("22222");
}
public B(int a)
{
super(a); //編譯器不會自動增加super();
//所以先調(diào)用父類中含一個參數(shù)的構(gòu)造函數(shù)
System.out.println("44444");
}
public static void main(String[] a)
{
B obj1 = new B();
System.out.println("======");
B obj2 = new B(10);
}
}
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中BufferedReader類獲取輸入輸入字符串實例
這篇文章主要介紹了Java中BufferedReader類獲取輸入輸入字符串實例,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-02-02

