java利用內部類實現多重繼承
利用內部類可以實現多重繼承關係 :
如下:
class D {}
abstract class E{}
class Z extends D {
E makeE(){ return new E() {}; }
}
public class MultiImplementation {
static void takesD(D d) {}
static void takesE(E e) {}
public static void main(String[] args){
Z z = new Z();
takesD(z);
takesE(z.makeE());
}
}
如上:既可以實現多重繼承。
內部類的好處:
1. 內部類可以有多個例項,每個例項都有自己的狀態資訊,並且與其外圍類對
象的資訊相互獨立。
2. 在單個外圍類中,你可以讓多個內部類以不同的方式實現同一個介面,或繼
承同一個類。稍後就會展示一個這樣的例子。
3. 建立內部類物件的時刻並不依賴於外圍類物件的建立。
4. 內部類並沒有令人迷惑的“is-a”關係;它就是一個獨立的實體。
相關推薦
java利用內部類實現多重繼承
利用內部類可以實現多重繼承關係 : 如下: class D {} abstract class E{} class Z extends D { E makeE(){ return new E() {}; } } public class MultiImplemen
利用 java 內部類實現多重繼承
直接看下面的示例: package test; /** * class one: Class1 * @author TJ */ public class Class1 { /** * method: getName *
用java內部類實現多重繼承
package test; /** * class one: Class1 * @author TJ */ publicclass Class1 { /** * method: getName * @return
Java內部類實現多重繼承
內部類使得多繼承的實現變得更加完美,同時也明確瞭如果父類為抽象類或者具體類,那麼就僅能通過內部類來實現多重繼承。 例項:兒子是如何利用多重繼承來繼承父親和母親的優良基因。 Father類、Mot
java 內部類實現多重繼承
bstract class A { abstract void methodA(); } abstract class B { abstract void methodB(); } class C extends A { @Override
內部類實現多重繼承(轉)
Java:使用內部類實現類的多重繼承Java不支援類的多重繼承,但可以使用內部類來繼承實現更多的類。下面的例子,目標類需要繼承兩個抽象類(A和B)。目標類C本身繼承類A,並使用一個匿名內部類繼承另一個類B。MultiImplementation.javaabstract cl
內部類實現多重繼承()
java:使用內部類實現類的多重繼承java不支援類的多重繼承,但可以使用內部類來繼承實現更多的類。下面的例子,目標類需要繼承兩個抽象類(a和b)。目標類c本身繼承類a,並使用一個匿名內部類繼承另一個類b。multiimplementation.javaabstract cl
使用內部類實現多重繼承
最常見的實現多重繼承的方式,是implements interface1,interface2,interface3...也可以通過多個內部類extends多個抽象類,例子程式如下:public class MultiE
java的多繼承的實現方式——通過內部類實現多繼承
說在前面 大家都知道java是不直接支援多繼承的,為什麼不支援多繼承呢?比較經典的一個問題就是diamond problem,比如b,c都繼承了a,而且b,c覆蓋了a的同一方法,此時d如果同時繼承了b,c,但是沒有覆蓋這一方法,那麼,請問此時在d裡呼叫該方法時,是b的,還是c的,還
java內部類回顧之一般內部類實現多繼承和封裝性
本文的標題可能有一定的誤導性,並不是說一般內部類就能實現多繼承,顯然這是不可能的。真正的意思是通過多繼承來實現我們期望中的多繼承的功能。 這裡就拿人類來舉例吧,人(Person)是一種生物(biology),而且是可移動(Moveable)的生物。我們可以定義如下兩個類:
java內部類之成員內部類,通過內部類實現多繼承
public class MemberInnerClass { public static void main(String[] args){ //建立外部類物件 Outer1 outer=
java(四)內部類與多重繼承
內部類定義:一個定義在類內部的類。之所以用內部類是因為使用內部類最吸引人的原因是:每個內部類都能獨立地繼承一個(介面的)實現,所以無論外圍類是否已經繼承了某個(介面的)實現,對於內部類都沒有影響。可以這樣說,介面只是解決了部分問題,而內部類使得多重繼承的解決方案變得更加完整。
java內部類與多重繼承
內部類定義:一個定義在類內部的類。之所以用內部類是因為使用內部類最吸引人的原因是:每個內部類都能獨立地繼承一個(介面的)實現,所以無論外圍類是否已經繼承了某個(介面的)實現,對於內部類都沒有影響。可以這樣說,介面只是解決了部分問題,而內部類使得多重繼承的解決方案變得更加完整。
內部類實現多繼承和封裝性
本文的標題可能有一定的誤導性,並不是說一般內部類就能實現多繼承,顯然這是不可能的。真正的意思是通過多繼承來實現我們期望中的多繼承的功能。 這裡就拿人類來舉例吧,人(Person)是一種生物(biology),而且是可移動(Moveable)的生物。我們可以定義如下兩個類
內部類實現多繼承(內部類的優勢)及內部類實現一個介面與外圍類實現這個介面的區別
在java中一個類可以多重實現,但不能多重繼承,也就是說一個類能夠同時實現多個介面,但不能同時繼承多個類。但有時候我們確實需要繼承多個類,比如希望擁有兩個類的行為功能,就很難使用單繼承來解決問題了(當然多層繼承是可以解決的),那麼我們還可以用什麼辦法來解決多重繼承的問題呢?沒
Java——匿名內部類實現執行緒的兩種方式
package com.yy.thread; public class Demo4_Thread { public static void main(String[] args) {
最安全的單例模式--java使用內部類實現單例模式
實現類 public class Singleton { private static class LazyHolder { private static final Singleton INSTANCE = new Singleton();
java提高篇(九)-----實現多重繼承
多重繼承指的是一個類可以同時從多於一個的父類那裡繼承行為和特徵,然而我們知道Java為了保證資料安全,它只允許單繼承。有些時候我們會認為如果系統中需要使用多重繼承往往都是糟糕的設計,這個時候我們往往需要思考的不是怎麼使用多重繼承,而是您的設計是否存在問題.但有時候我們確
java 匿名內部類說明 及其多執行緒實現繼承Thread,實現Runnable
原文:http://tjukk.iteye.com/blog/2047663 匿名內部類也就是沒有名字的內部類 正因為沒有名字,所以匿名內部類只能使用一次,它通常用來簡化程式碼編寫 但使用匿名內部類還有個前提條件:必須繼承一個父類或實現一個介面 例項1:不使用匿名內部類來實現抽象方法
Anonymous Inner Class(匿名內部類)是否可以繼承其它類?是否可以實現介面?【Java面試題】
回答:匿名內部類在實現時必須藉助一個藉口或者一個抽象類或者一個普通類來構造,從這過層次上講匿名內部類是實現了介面或者繼承了類,但是不能通過extends或implement關鍵詞來繼承類或實現介面。