1. 程式人生 > >關於Implicit super constructor FF is undefined Must explici

關於Implicit super constructor FF is undefined Must explici

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               
public class FF {}class SS extends FFpublic SS (int a,int b){  //do something }}
上面的程式碼沒有問題。


public class FF public FF(int a){}}class SS extends FF{}
對於上面的程式碼,編譯是會出問題的,出什麼問題?
Implicit super constructor FF() is undefined for default constructor. Must define an explicit constructor
什麼意思?
我們知道,ss繼承了ff,那麼在構造ss之前,就會先構造ff。
ss沒有人為指定的建構函式,因此new SS的時候就用的是預設的建構函式,而子類預設的建構函式呼叫的也是父類預設的建構函式。
但是父類有了人為指定的建構函式,就覆蓋了本身自動生成的預設無參建構函式,換言之,父類沒有無參建構函式,那麼就出錯了。


public
class FF public FF(int a){}}class SS extends FFpublic SS(String a){     System.out.println("llll"); }}
上面的程式碼還是會出錯,為什麼?
因為不管子類的建構函式是什麼樣的形式,都會預設呼叫父類的預設的無參的建構函式。
上面的情況父類依然沒有建構函式。
那怎麼辦?
或者
public class FF {//去掉建構函式}class SS extends FF{public SS(String a)
{   System.out.println("llll");}}
或者
public class FF public FF(int a){}}class SS extends FFpublic SS(int a){     //指定要呼叫父類的某個建構函式     super.(a);     System.out.println("llll"); }}



哎 感覺幾年的java白學了。
感謝交大的張晨同學。



           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述