Java语言深入:构造方法调用浅谈
在學習編程的過程中,我覺得不止要獲得課本的知識,更多的是通過學習技術知識提高解決問題的能力,這樣我們才能走在最前方,更多Java專業知識,廣州瘋狂java培訓為你講解;
先初始化父類的靜態代碼--->初始化子類的靜態代碼-->創建實例時,如果不創建實例,則后面的不執行)初始化父類的非靜態代碼--->初始化父類構造函數--->初始化子類非靜態代碼--->初始化子類構造函數子類繼承父類會先初始化父類,調用父類的構造函數,子類的構造方法的第一條語句就是調用父類的沒有參數的構造方法,如果你沒有寫出這條語句java虛擬機就會默認的調用,如果你顯示的寫了這條語句,就一定要寫在構造方法中的第一條語句,不然會報錯原理簡述:只有在構造方法中調用了父類的構造方法才能繼承父類的相關屬性和方法,要不然
子類從哪里繼承父類的屬性和方法,在實例化子類的時候又沒有和父類有任何關系。子類的構造函數默認調用和這個構造函數參數一致的父類構造函數,除非在此子類構造函數的第一行顯式調用父類的某個構造函數。
類Example1
class father{
int x=0,y=0;
father(){
System.out.println("now is in father's constructor");
}
father(int x,int y){
this.x=x;
this.y=y;
}
public void print(){
System.out.println("x="+x+";y="+y);
}
}
class son extends father{
son(){
System.out.println("now is in son's constructor");
}
son(int x,int y){
super(x,y);//改變x,y,的值,若無super(x,y),則默認調用father()
}
public void print(){
super.print();
System.out.println("my name is son!");
}
}
public class Example1 {
public static void main (String[] args){
son s=new son();//實例化構造的時候從父類開始調用
s.print();//此處不是構造,是調用
son f=new son(10,20);
f.print();
}
}
運行結果::
now is in father's constructor
now is in son's constructor
x=0;y=0
my name is son!
x=10;y=20
my name is son!
類Example2:
class father{
int x=0,y=0;
father(){
System.out.println("now is in father's constructor");
}
father(int x,int y){
this.x=x;
this.y=y;
}
public void print(){
System.out.println("x="+x+";y="+y);
}
}
class son extends father{
son(){
System.out.println("now is in son's constructor");
}
son(int x,int y){
//改變x,y,的值
System.out.println("s213");
}
public void print(){
//引用父類的print函數
System.out.println("my name is son!");
}
}
public class Example2 {
public static void main (String[] args){
son s=new son();//實例化構造的時候從父類開始調用
s.print();//此處不是構造,是調用, oh,yeah!
son f=new son(10,20);//先調用父類的father(){System.out.println("now is in }
//而不是father(int x,int y){this.x=x;this.y=y;}
f.print();
}
}
運行結果
now is in father's constructor
now is in son's constructor
my name is son!
now is in father's constructor
s213
對比這兩個類的注釋和結果相信你就會明白了.
瘋狂Java培訓專注軟件開發培訓,提升學員就業能力,重點提升實踐動手能力。技術知識沉淀深厚的老師,讓你感受Java的魅力,激發你對于編程的熱愛,讓你在半年的時間內掌握8-10萬的代碼量,掌握Java核心技術,成為真正的技術高手;通過大量全真企業項目瘋狂訓練,迅速積累項目經驗。讓你成為技能型的現代化高端人才,迅速獲得高薪就業!時間不等人,趕緊聯系我們吧!瘋狂java培訓中心地址:廣州天河區車陂灃宏大廈3樓。
?
轉載于:https://www.cnblogs.com/gojava/p/3325893.html
總結
以上是生活随笔為你收集整理的Java语言深入:构造方法调用浅谈的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jsp小商城
- 下一篇: Cheatsheet: 2013 09.