日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 构造函数和super

發布時間:2024/3/24 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 构造函数和super 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package one; class book {book(){System.out.println("這是沒有參數的父類的構造方法");}book(int i){System.out.println("有參數 父類的構造方法");}public void get(){System.out.println("book父類");}} class dictionary extends book {dictionary() {System.out.println("子類 無參數 的構造方法哦");} dictionary(int i){System.out.println("子類 有參數 的構造方法哦");}public void get() //子類覆蓋父類的方法{System.out.println("子類dictionary.");}public void get(int pages) /*get方法的重載, 重載是 方法名相同,參數表不同*/ {System.out.println("子類dictionary get方法重載.");}public void son(){System.out.println("這是子類新添加的方法,父類沒有哦.");} }public class haha { public static void main(String[] args) {// TODO Auto-generated method stubbook a= new book();System.out.println("-----------------");book e= new book(123);System.out.println("-----------------");book b= new dictionary(2);//多態 向上類型轉換System.out.println("-----------------");dictionary c=new dictionary(3);System.out.println("-----------------");dictionary d=new dictionary();b.get(); c.son(); // b.son(); 此句編譯不通過/*(編程看左邊,執行看右邊)book b= new dictionary(2); 即編譯器看的是引用變量,因為book類里面沒有son這個方法*/}}

運行結果

這是沒有參數的父類的構造方法 ----------------- 有參數 父類的構造方法 ----------------- 這是沒有參數的父類的構造方法 子類 有參數 的構造方法哦 ----------------- 這是沒有參數的父類的構造方法 子類 有參數 的構造方法哦 ----------------- 這是沒有參數的父類的構造方法 子類 無參數 的構造方法哦 子類dictionary. 這是子類新添加的方法,父類沒有哦.

1 調用子類構造函數的時候,會默認先調用父類的無參數構造方法,即相當于隱藏了一行代碼 super();

2.在你程序沒有寫構造方法時候,編譯器會默認幫你寫一個無參數的構造方法,只不過方法里面沒有內容
然而當你編寫了構造函數的話,編譯器就不會再幫你添加無參數的構造方法了,即使你只編寫了有參數的構造方法。
如果你已經寫了一個有參數的構造函數,并且你需要一個沒有參數的構造函數,你必須自己動手寫。
只要你有自己寫的構造函數,不管是哪一種,這都會想是在跟編譯器說:老兄,我自己的構造函數不用你管。


寫了book(i),而沒有寫book()這種無參數的,編譯器會認為你既然寫了構造函數了,我就不管了,所以不會為你默認添加book() 而子類的構造函數是要先調用父類的,默認無參數的構造函數,此時我們因為沒有定義這種,所以報錯。

dictionary()通過super(i)調用父類構造函數。編譯成功

dictionary(i)沒有編譯成功,是因為默認 子類構造函數 先調用無參數的父類構造函數,super() ,然后因為沒有嘛,所以錯誤。

構造函數的作用
來初始化對象的狀態。

總結

以上是生活随笔為你收集整理的java 构造函数和super的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。