Java中的继承:当我已经扩展了一个类时,扩展另一个类

时间:2013-03-29 06:43:22

标签: java swing inheritance jframe extend

我必须将A类的变量扩展到B类。为此我必须写:

public class B extends class A

但在我的情况下,这个地方已经被“extends javax.swing.JFrame”占用了。它看起来像:

public class B extends javax.swing.JFrame

请建议任何方法来继承从A类到B类的变量。我对这个领域很新。所以请解释一下。

6 个答案:

答案 0 :(得分:3)

使用合成或在B类中创建一个扩展A类的内部类。

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

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

 }

答案 1 :(得分:2)

Java不支持多重继承,因此您无法扩展AJFrame

您可以将A转换为界面,也可以将A的实例嵌入B

答案 2 :(得分:1)

你可以这样做:

public class A extends javax.swing.JFrame{

...

}

然后

public class B extends A{

...

}

答案 3 :(得分:1)

使用组合或聚合。详细了解Has-A关系。

阅读 this this

答案 4 :(得分:1)

Java不支持多重继承。但是Java仍然提供了其他方法来实现多重继承。

  1. 检查是否可以使用interface解决它,因为您可以实现多个接口。
  2. 使用组合或聚合。从根本上说,我们使用继承实现代码可重用性。使用组合物/聚集也可以实现相同的目的。
  3. 使用内部类(可以使用内部类扩展多个类)

答案 5 :(得分:1)

使A类成为接口,B实现它如下:

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

public class B extends javax.swing.JFrame implements A{
   ...
}