2013-03-29 34 views
0

我有A类的变量扩展到B级。对于我必须写:继承在Java中:扩展另一个类的时候,我已经延长一个

public class B extends class A 

但在我的情况下,地方已被“扩展javax.swing.JFrame”占用。它看起来像:

public class B extends javax.swing.JFrame 

请提出的方法来继承类A类B.变量我是很新的这个领域。所以请解释一下。

+0

你可以尝试多继承。 –

回答

3

无论是应用组合物或创建B类的内部类延伸的A级

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

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

} 
+0

它仍然在说“包不存在” –

+0

所有类和变量都是公共的。 –

+0

现在有什么问题? –

1

你可以这样做:

public class A extends javax.swing.JFrame{ 

... 

} 

然后

public class B extends A{ 

... 

} 
2

的Java不支持多重继承,所以不能同时扩展AJFrame

您可以将A转换为接口,或将A的实例嵌入到B中。

1

使用组合或聚合。了解更多关于Has-A的关系。

阅读thisthis

1

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

  1. 检查您是否可以通过使用接口解决问题,因为您可以实现多个接口。
  2. 使用组合或聚合。从根本上说,我们使用继承来实现代码可重用性。使用合成/聚合也可以达到同样的效果。
  3. 使用内部类(可以延长使用内部类多类)
1

制作A类接口和B是这样实现的:

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

public class B extends javax.swing.JFrame implements A{ 
    ... 
} 
相关问题