重複の可能性:
Java での多重継承の代替 Java での
多重継承?
私は次のようなコードを持っています:
public class myApplet extends JApplet
次のように別のエクステンドを追加することに興味があります:
public class myApplet extends JApplet, extends Object implements Serializable
これは何らかの方法で行うことができますか?
重複の可能性:
Java での多重継承の代替 Java での
多重継承?
私は次のようなコードを持っています:
public class myApplet extends JApplet
次のように別のエクステンドを追加することに興味があります:
public class myApplet extends JApplet, extends Object implements Serializable
これは何らかの方法で行うことができますか?
Java には多重継承がなく、Object
とにかくどのクラスも拡張されるため、その場合は役に立ちません。
Java には多重継承はありませんが、複数のインターフェースを実装できます。
public class myApplet extends JApplet implements Serializable, SomeThingElse
Object
すべてのクラスが拡張するため、拡張する必要はありません。
1 つのクラスで共有したい 2 つのクラスにメソッドがある状況にある場合、関数セットがまとまりがあり、異なる操作を実行する場合は、これら 2 つのクラスを使用する 3 番目のクラスを定義することを検討してください。クラスを組み合わせて力を得ようとしないでください。さまざまな問題に取り組む個別のクラスを作成し、これらのインスタンスを上位クラスに格納します。
同様の機能を実行する 2 つのクラスがある場合、それらの共通コードをスーパークラスに抽象化できる場合があります。したがって、クラス A はクラス B を拡張し、次にクラス C を拡張して、そこに詳細を追加します。
構造が非常に似ているが、異なるデータ構造またはアルゴリズムで動作する 2 つのクラスがある場合は、両方が実装するインターフェイスを作成することを検討してください。この良い例は、メソッドを持つ Vehicle インターフェースdrive()
です。ACar
は、 とは異なる実装にdrive()
なりMotorbike
ます。
この最後のアイデアを拡張するために、これらのクラスが共通のコードを共有し、「車は乗り物である」および「バイクは乗り物である」と言うことが可能である場合、インターフェイスよりも継承の使用が好まれる可能性があります。車両とその抽象化された機能。Car
Motorbike
Java で複数のクラスを拡張することはできません。ただし、複数のインターフェイスを実装できます。
ただし、親が別の親の子である場合、もちろん、階層内のすべてのクラスも拡張されます。
拡張ステートメントを追加しない場合、オブジェクトが自動的に親として選択されます。オブジェクトはスーパーペアレントであり、すべての階層で見つけることができます。したがって、あなたの場合、ヒラキーは次のように「拡張オブジェクト」をスキップできます。
java.lang.Object
extended by java.awt.Component
extended by java.awt.Container
extended by java.awt.Panel
extended by java.applet.Applet
extended by javax.swing.JApplet
extended by your.package.myApplet
( http://docs.oracle.com/javase/6/docs/api/javax/swing/JApplet.htmlを参照)
Java は多重継承をサポートしていません。複数のインターフェイスを使用できます。
Javaでクラスを2回拡張することはできません...それでも、Javaのすべてのクラスはクラスオブジェクトから即座に継承されるため、オブジェクトクラスでクラスを拡張する必要はありません;)
いいえ、Java は多重継承をサポートしていません。ただし、すべてのクラスは Object から自動的に継承します。