1

クラス A の変数をクラス B に拡張する必要があります。そのためには、次のように記述する必要があります。

public class B extends class A

しかし、私の場合、すでに「extends javax.swing.JFrame」でその場所を占めています。次のようになります。

public class B extends javax.swing.JFrame

クラスAからクラスBに変数を継承する方法を提案してください。私はこの分野に非常に慣れていません。説明してください。

4

6 に答える 6

4

コンポジションを使用するか、クラス A を拡張するクラス B に内部クラスを作成します。

 class B extends JFrame {
     A a = ... // this is one option

     class C extends A {
         // this is another option 
     }  

 }
于 2013-03-29T06:45:51.077 に答える
3

AJava は多重継承をサポートしていないため、 と の両方を拡張することはできませんJFrame

インターフェイスにするか、 のインスタンスをにA埋め込むことができます。AB

于 2013-03-29T06:46:51.847 に答える
1

合成または集計を使用します。関係の詳細をご覧くださいHas-A

これこれを読んで

于 2013-03-29T06:48:34.243 に答える
1

多重継承は Java ではサポートされていません。しかし、Java は多重継承を実現する他の方法を提供しています。

  1. 複数のインターフェイスを実装できるため、インターフェイスを使用して解決できるかどうかを確認します。
  2. 合成または集計を使用します。基本的に、継承を使用してコードの再利用性を実現します。構成/集約を使用しても同じことが実現できます。
  3. 内部クラスを使用する (内部クラスを使用して複数のクラスを拡張できます)
于 2013-03-29T06:48:53.317 に答える
1

あなたはこのようにすることができます:

public class A extends javax.swing.JFrame{

...

}

その後

public class B extends A{

...

}
于 2013-03-29T06:46:17.247 に答える
1

クラス A をインターフェイスにし、B を次のように実装します。

public interface A{
public ....[Variables] 
}

public class B extends javax.swing.JFrame implements A{
   ...
}
于 2013-03-29T07:31:22.510 に答える