2011-03-21 72 views
1

在Java中,一個對象可以有幾個不同的類?Java對象,繼承和接口

如果是,那麼繼承和接口應該如何影響它呢?

+1

我不知道我理解你的第二個問題。你能詳細說明嗎?此外,這是一個功課問題? – templatetypedef 2011-03-21 03:19:19

+0

http://download.oracle.com/javase/tutorial/java/IandI/index.html – 2011-03-21 03:22:51

回答

5

這不是一個很好的,提出的問題。任何對象都可以是唯一的一個類(忽略像int這樣的非對象原語)。另一方面,類可以有任意數量的超類,所以你的類可以匹配一個artitrary的「is a」關係其他類的數量。

在接口問題上,所有接口帶來的是一個「契約」 - 你承諾實現某些方法或具有某些屬性。這有點類似於多重繼承,但不是真正的多重繼承。同樣,實現一個接口意味着類有另一個「是」屬性,但這並不意味着它完全引入了其他類。

+1

+1以獲得全面而簡潔的答案。 Java的「簡單白皮書」對此有多重繼承的說法:「多重繼承 - 以及它產生的所有問題 - 被Java拋棄了,多重繼承的理想特性由接口提供。」 – corsiKa 2011-03-21 03:27:38

1

class A{} 

class B extends A{} 

void foo() 
{ 
    B b = ...; // here object b is of type B and A(by inheritance) 

}