多型の概念を使って、変数の型をインタフェースの型と宣言することができると思います。例:Animalがインターフェースの場合、次のコードを記述できます。インターフェイスもタイプであるとはどういう意味ですか?
Animal simba = new Lion();
私はこのことを正しく理解していますか?助けてくれてありがとう。
多型の概念を使って、変数の型をインタフェースの型と宣言することができると思います。例:Animalがインターフェースの場合、次のコードを記述できます。インターフェイスもタイプであるとはどういう意味ですか?
Animal simba = new Lion();
私はこのことを正しく理解していますか?助けてくれてありがとう。
すべてのオブジェクトは、タイプ(および値)を持っている*多くの種類があります。プリミティブ型(のようなint
)、クラス型(のようなstring
)、列挙型、配列(そしておそらく私はいくつかを忘れてるが)。
用語「インタフェース」は、クラス型の特定の一種を指す:それにはメンバオブジェクト(安全定数)と抽象あるすべてが唯一のパブリックメソッドを持っていないクラスである**
。だから、インターフェースは特殊な種類のクラスで、特別な種類のクラスです。だからインタフェースはタイプです。あなたの例では、Animal
とLion
は両方とも型になり、もう一方は変換可能です。
*)ゆるやかに、このタイプは「これの構造は何ですか」と表示され、値は「これの内容は何ですか」と表示されます。それが不可能である一方、これはJavaで複数の一般的なものから継承するために、複数からインターフェースを継承することができます。5.
**)、5
のタイプはint
であり、その価値は十分です...クラス。
interface
は、その実装タイプを取ることができる点で、Javaのsuperclass
と同様に動作できます。
具体例では、具体的にはを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
私はあなたがここで探しているものを正確にはわかりません。答えは現在「はい」です。 –
私によく見えます。投票1回以上 –