java 什麼時候使用內部類__java

來源:互聯網
上載者:User

java中的內部類和介面加在一起,可以的解決常被C++程式員抱怨java中存在的一個問題 沒有多繼承。

每個內部類都能獨立的繼承自一個(介面的)實現,所以無論外圍類是否已經繼承了某個(介面的)實現,對於內部類都沒有影響。

1.內部類繼承

          因為內部類的構造器必須串連到指向其外圍類對象的引用,所以在繼承內部類的時候使用特殊文法。問題在於,指向外圍類對象的引用必須被初始化,而在匯出類中不存在可串連的預設對象。所以必須要用特殊文法來明確說清楚他們之間的關聯。

class WithInner{    class Inner{}}public class InheritInner extends WithInner.Inner{    InheritInner(WithInner wi){    wi.super();}}

2 內部類覆蓋

            當繼承一個外圍類的時候,內部類不會發生什麼變化。當明確的繼承一個內部類時會發生變化。

public class Egg {private Yolk y;protected class Yolk {public Yolk() {System.out.println("Egg.Yolk");}}public Egg() {System.out.println("New Egg");y = new Yolk();}}
public class BigEgg extends Egg {public class Yolk {public Yolk() {System.out.println("BigEgg.yolk()");}}public static void main(String[] args) {new BigEgg();}}
輸出:

New Egg
Egg.Yolk

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.