0

可能重复:
Java 中多重继承的替代方案 Java 中的
多重继承?

我有这样的代码:

public class myApplet extends JApplet

我有兴趣像这样添加另一个扩展:

public class myApplet extends JApplet, extends Object implements Serializable

这可以通过某种方式完成吗?怎么做?

4

6 回答 6

1

您不能在 Java 中扩展多个类。但是您可以实现多个接口。

但是,如果您的父母是另一个父母的孩子,那么您当然也扩展了层次结构中的所有类。

如果您不添加扩展语句,则会自动选择 Object 作为父级。Object 是超父级,在每个层次结构中您都会找到它。因此,在您的情况下,您可以跳过“扩展对象”,因为 hiracy 如下:

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 回答
1

Java没有多重继承,任何类都可以扩展Object,所以在这种情况下它是没用的。

于 2013-01-25T12:03:34.723 回答
1

Java没有多重继承,但你可以实现多个接口。

public class myApplet extends JApplet implements Serializable, SomeThingElse

您不需要扩展Object,因为所有类都会扩展它。

如果您处于两个类中的方法想要在一个类中共享的情况,请考虑定义使用这两个类的第三个类,前提是函数集具有内聚性并执行不同的操作。不要试图组合类来获得他们的权力。创建单独的类来解决不同的问题,并将这些问题的实例存储在更高阶的类中。

如果您确实有两个执行相似功能的类,则可以将它们的公共代码抽象为超类。因此,A 类将扩展 B 类,而您将依次扩展 C 类并在那里添加更多细节。

如果您有两个结构非常相似但操作不同数据结构或算法的类,那么您可能会考虑创建一个它们都实现的接口。一个很好的例子是具有drive()方法的 Vehicle 接口。A将具有与 a不同Car的实现。drive()Motorbike

为了扩展最后一个想法,如果这些类将共享公共代码并且可以说“A Car is a Vehicle”和“A Motorbike is a Vehicle”,那么很可能使用继承优于接口,Car并且Motorbike两者都扩展车辆及其抽象功能。

于 2013-01-25T12:03:55.690 回答
0

不,Java 不支持多重继承。但是,每个类都自动继承自 Object 。

于 2013-01-25T12:03:58.947 回答
0

Java不支持多重继承,你可以使用多个接口

于 2013-01-25T12:12:33.373 回答
0

你不能在 java 中扩展类两次......不过,java 中的每个类都立即从类 Object 继承,所以你不必用 Object 类扩展你的类;)

于 2013-01-25T12:03:51.370 回答