java內部類回顧之一般內部類實現多繼承和封裝性

2021-06-27 22:09:37 字數 904 閱讀 2109

本文的標題可能有一定的誤導性,並不是說一般內部類就能實現多繼承,顯然這是不可能的。真正的意思是通過多繼承來實現我們期望中的多繼承的功能。

這裡就拿人類來舉例吧,人(person)是一種生物(biology),而且是可移動(moveable)的生物。我們可以定義如下兩個類:

public class biology 		

}

package com.pht.inner;

public class moveable

}

人要同時具有以上的兩種特性,那麼就需要定義乙個人(human)如下:

package com.pht.inner;

import com.pht.inner.outer.inner;

public class human

class innerhuman1 extends biology

class innerhuman2 extends moveable

}

測試類main如下

package com.pht.inner;

public class humantest

}

可以看出,我們是通過內部類分別繼承來實現多繼承的功能,這對於在一些情況下提高**的靈活性和復用是很有幫助的。當然,我們也可以外部類繼承乙個模組,剩下的由內部類來繼承來實現。在此不需要贅述。

內部類的封裝性:

加入我們把內部類定義為private的,那麼就只有包含此內部類的外部類能夠訪問他。這樣在我們希望只給某乙個類提供服務,拒絕其它不相干的的類的訪問的時候,我們可以通過內部類來達到目的。

java內部類回顧之匿名內部類

匿名內部類使用比較多一種情況是 當乙個方法傳遞乙個介面型別的引數時。這裡定義乙個介面 package com.pht.inner public inte ce person 再定義乙個類,且有乙個傳遞person型別的引數的方法 package com.pht.inner public class ...

Java內部類 靜態內部類

靜態內部類是外部類的靜態成員,不依賴於外部類的物件而存在,因此在外部類外面建立靜內部類物件時不需要首先建立外部類的物件 靜態內部類也可以稱為靜態巢狀類或頂級巢狀類。靜態內部類與外部類物件之間不存在著對成員的共享關係,靜態內部類其實已經脫離了外部類的控制 static關鍵字只是說明其在建立物件的時候不...

Java內部類 Java例項內部類

例項內部類是指沒有用 static 修飾的內部類。示例 如下 public class outer 上述示例中的 inner 類就是例項內部類。例項內部類有如下特點。1 在外部類的靜態方法和外部類以外的其他類中,必須通過外部類的例項建立內部類的例項。public class outer inner1...