Java外部類的繼續(全)。本站提示廣大學習愛好者:(Java外部類的繼續(全))文章只能為提供參考,不一定能成為您想要的結果。以下是Java外部類的繼續(全)正文
上面經由過程實例代碼給年夜家分享下有關JAVA外部類的繼續,詳細詳解以下:
Java外部類的結構器必需銜接到指向其核心類對象的援用(結構外部類必需給它一個內部類對象的援用,外部類依附於內部類對象),所以在繼續外部類的時刻,須要在導出類的結構器中手動參加對基類結構器的挪用。
由於,在導出類實例化時,其實不存在一個核心類對象,以讓導出類的實例去銜接到它。
所以,我們須要創立一個核心類,然後用一個特定的語法來注解外部類與核心類的關系。
鄙人例子中,須要給導出類InheritInner一個來自外部類的核心類中的援用。通俗的繼續,只需在導出類結構器中參加super();,而外部類則須要核心類對象援用.super();
class WithInner{ class Inner{} } public class InheritInner extends WithInner.Inner{ InheritInner(WithInner wi){ wi.super(); //wi的父類是object } public static void main(String[] args){ WithInner wi = new WithInner(); InheritInner ii = new InheritInner(wi); } }
而進一步,當被繼續的外部類只要非默許結構器時應當怎樣辦呢?
class WithInner{ class Inner{ public Inner(int i){ System.out.println(i); } } } public class InheritInner extends WithInner.Inner{ InheritInner(WithInner wi){ int i=0; wi.super(i);//如代碼所示,當被繼續的結構器須要參數時,應把參數傳遞給這個super函數 } public static void main(String[] args){ WithInner wi = new WithInner(); InheritInner ii = new InheritInner(wi); } }
以上就是對JAVA外部類的繼續詳解,願望可以或許贊助到年夜家。