0

重複の可能性:
Java での多重継承の代替 Java での
多重継承?

私は次のようなコードを持っています:

public class myApplet extends JApplet

次のように別のエクステンドを追加することに興味があります:

public class myApplet extends JApplet, extends Object implements Serializable

これは何らかの方法で行うことができますか?

4

6 に答える 6

1

Java には多重継承がなく、Objectとにかくどのクラスも拡張されるため、その場合は役に立ちません。

于 2013-01-25T12:03:34.723 に答える
1

Java には多重継承はありませんが、複数のインターフェースを実装できます。

public class myApplet extends JApplet implements Serializable, SomeThingElse

Objectすべてのクラスが拡張するため、拡張する必要はありません。

1 つのクラスで共有したい 2 つのクラスにメソッドがある状況にある場合、関数セットがまとまりがあり、異なる操作を実行する場合は、これら 2 つのクラスを使用する 3 番目のクラスを定義することを検討してください。クラスを組み合わせて力を得ようとしないでください。さまざまな問題に取り組む個別のクラスを作成し、これらのインスタンスを上位クラスに格納します。

同様の機能を実行する 2 つのクラスがある場合、それらの共通コードをスーパークラスに抽象化できる場合があります。したがって、クラス A はクラス B を拡張し、次にクラス C を拡張して、そこに詳細を追加します。

構造が非常に似ているが、異なるデータ構造またはアルゴリズムで動作する 2 つのクラスがある場合は、両方が実装するインターフェイスを作成することを検討してください。この良い例は、メソッドを持つ Vehicle インターフェースdrive()です。ACarは、 とは異なる実装にdrive()なりMotorbikeます。

この最後のアイデアを拡張するために、これらのクラスが共通のコードを共有し、「車乗り物である」および「バイク乗り物である」と言うことが可能である場合、インターフェイスよりも継承の使用が好まれる可能性があります。車両とその抽象化された機能。CarMotorbike

于 2013-01-25T12:03:55.690 に答える
1

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を参照)

于 2013-01-25T12:08:24.693 に答える
0

Java は多重継承をサポートしていません。複数のインターフェイスを使用できます。

于 2013-01-25T12:12:33.373 に答える
0

Javaでクラスを2回拡張することはできません...それでも、Javaのすべてのクラスはクラスオブジェクトから即座に継承されるため、オブジェクトクラスでクラスを拡張する必要はありません;)

于 2013-01-25T12:03:51.370 に答える
0

いいえ、Java は多重継承をサポートしていません。ただし、すべてのクラスは Object から自動的に継承します。

于 2013-01-25T12:03:58.947 に答える