-3

2つのクラス間の継承においてインターフェースが果たす役割を理解したいと思います。

私の理解では、を使用してスーパークラスとサブクラスを作成できますextends

class Parent {
}
class Child extends Parent {
}

これは、スーパークラスとサブクラスを作成するのにすでに十分です。

いつインターフェースが必要ですか?implements子供と親のどちらが必要ですか?

class Parent {
}
class Child extends Parent implements MyInterface {
}
interface MyInterface {
}
4

4 に答える 4

2

継承とインターフェースの実装は、is-a関係を定義します。これは、サブクラスAがスーパークラスBを拡張することを意味します。Aは-a Bです。スーパークラスBがインターフェイスIを実装する場合、Bは-a Iです。また、A-A Aなので、AIです。

たとえば、Car(スーパークラス)はVehicle(インターフェイス)です。アウディは車を拡張するので、アウディは乗り物でもあります。

サブクラスはその親より小さくすることはできませんが、それより大きくすることはできます。したがって、子は、その親クラスが実装していないインターフェイスを実装する場合があります。

たとえば、すべての車がハイブリッド(インターフェース)ではありません。しかし、これは車であるプリウスがハイブリッドであることを妨げるものではありません。プリウスは単なる車ではありません。ハイブリッドでもあります。

于 2012-06-19T21:54:22.100 に答える
1
interface MyInterface {
}

class Parent implements MyInterface{
}
class Child extends Parent {
       // Implements MyInterface because it's parent does
}
class Child2 extends Parent implements AnotherInterface {
       //  Child2 class now implements both
       // MyInterface as well as AnotherInterface
}

インターフェイスの拡張について質問しているかどうかはわかりませんが、それも可能です。

interface MyInterface {
}

interface MySecondInterface extends MyInterface {
}

クラスで記述された定数を使用し、インターフェイスに含まれるメソッドシグネチャを定義する場合は、インターフェイスを実装します。

したがって、PARENTクラスで定数を使用してメソッドを定義する場合は、PARENTがインターフェースを実装します。CHILDクラスクラスで定数を使用してメソッドを定義する場合は、CHILDがインターフェイスを実装します。

于 2012-06-19T21:53:27.983 に答える
1

基本クラスから継承するクラスの概念は、インターフェースを実装するクラスから独立しています。最初のケースでは、継承クラスはインターフェースとそのベースの実装の両方を「無料で」取得します。2番目のケースでは、クラスは、実装するように宣言されているインターフェースに準拠するようにチェックされます。

サブクラスは、そのベースが実装するインターフェースを継承しますが、追加のインターフェースを自由に実装することもできます。これは、単一の階層内のクラスが、階層内の位置に応じて複数の役割を担う必要がある場合に非常に便利です。

于 2012-06-19T21:53:54.920 に答える
1

基本的に、インターフェースは、それを実装するクラスのガイドラインを作成するために使用されます。

インターフェイスと親クラスの主な違いは次のとおりです
。1)インターフェイスをインスタンス化できません(コンストラクタもありません)
2)すべてのメソッドは抽象である必要が
あります3)それを実装するクラスのすべてのインターフェイスメソッドをオーバーライドする必要があります。

于 2012-06-19T21:56:32.860 に答える