2

让我们举两个类的实例

public abstract class Shapes
{
      public abstract void draw(Graphics g);

}

public class Rectangle extends Shapes
{
     public void draw(Graphics g)
     {
          //implementation of the method 
     }
}

在这里,该类Rectangle扩展了 classShapes并隐含地扩展了 class Object。我知道没有其他扩展是可能的,但是我们不能调用继承类ShapesObject多重继承吗?(因为继承两个类从一个角度来说就是多重继承)

4

5 回答 5

10

它不是多重继承。您不是从Shapesand继承Object,而是ShapeswhichObject继承。

多重继承仅适用于一次从 2 个类继承。

public class Rectangle extends Shapes, Figures

在 Java 中是不允许的。

您指的是Multilevel Inheritance。谢谢@BhavikShah

于 2012-12-18T04:59:35.010 回答
2

你描述的是继承的定义。一个类继承其超类的属性和方法,以及所有超类的超类。只有一条路径可以返回根 ( Object)。在多重继承中,返回根(甚至多个根)的路径不止一条。

于 2012-12-18T04:59:50.510 回答
1

这不像Rectangle是从Shapes和派生的Object。But Rectangleis derived from Shapesand Shapes are derived from Object,因此RectangleisShape以及Object.

 Object
   |
   V
 Shapes
   |
   V
Rectangle

因此Java中没有多重继承

于 2012-12-18T05:06:04.267 回答
0

直接在java中不可能进行多重继承。

但是,您可以(在一定程度上)使用接口来实现这一点。

例如

interface A{

 void m1();

}
interface B{

  void m2();

}

class C implements A,B{

 // it has both m1 and m2;

}
于 2012-12-18T05:14:51.300 回答
0

多重继承意味着在java中是不可能的

public class A extends B, C {

}
于 2012-12-18T05:00:45.610 回答