我認爲這意味着通過多態的概念,變量的類型可以被聲明爲接口的類型。例如:如果動物是一個界面,你可以編碼如下:接口也是一種類型是什麼意思?
Animal simba = new Lion();
我的理解是否正確?謝謝你的幫助。
我認爲這意味着通過多態的概念,變量的類型可以被聲明爲接口的類型。例如:如果動物是一個界面,你可以編碼如下:接口也是一種類型是什麼意思?
Animal simba = new Lion();
我的理解是否正確?謝謝你的幫助。
每個對象都有一個型(和值)*有多種類型:基本類型(如int
),類類型(如string
),枚舉,陣列(也許我忘了一些)。
術語「界面」是指一個特定類型的類類型的:它是沒有成員對象(安全常量),只有公共方法,所有這些都是抽象一類**
所以:接口是一種特殊的類,它又是一種特殊的類型。所以接口是類型。在你的例子中,Animal
和Lion
都是類型,一個恰好可以轉換爲另一個。
*)鬆散地說,該類型表示「這是什麼結構」,值是「這是什麼內容」。該類型的5
爲int
,其價值是......嗯,5
**)這使您可以從多個繼承接口,而這是不可能在Java中,從多個一般繼承類。
interface
可以採用類似於Java中的superclass
的行爲,因爲它可以採用其實現的類型。
在您的示例中,具體而言,您將Animal
定義爲interface
,其中Lion
實現。
因此,您可以創建類型爲Lion
的Animal
。該代碼是這樣的:
interface Animal {
//do interfacing stuff
}
class Lion implements Animal {
public Lion() {
//...
}
//do implementing stuff
}
class Driver {
Animal simba = new Lion(); // This works because of polymorphism.
}
你是正確的,不過,在說這是polymorphism一個例子。
是的,正確的,假設`Lion`類實現`Animal`接口。 – aroth 2011-12-16 01:12:05