Java不支持多重继承吗?

时间:2012-12-18 04:57:59

标签: java inheritance

让我们接受两个班级的实例

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扩展了类Shapes,并且隐式地扩展了类Object。我知道没有其他扩展是可能的,但我们不能称为继承类ShapesObject多重继承吗? (因为从一个角度继承两个类是多重继承)

5 个答案:

答案 0 :(得分:10)

它不是多重继承。您不是继承自ShapesObject,而是继承自Shapes <{1}}

只有一次从2个类继承,才能进行多重继承。

Object

Java中不允许这样做。

您所指的是Multilevel Inheritance。谢谢@BhavikShah

答案 1 :(得分:2)

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

答案 2 :(得分:1)

这与RectangleShapes的{​​{1}}不同。但Object源自Rectangle,而形状源自Shapes,因此ObjectRectangle以及Shape

Object

因此Java中没有多重继承

答案 3 :(得分:0)

多重继承意味着在java

中是不可能的
public class A extends B, C {

}

答案 4 :(得分:0)

直接在java中无法进行多重继承。

但是你可以使用接口实现这一点(在某种程度上)。

e.g。

interface A{

 void m1();

}
interface B{

  void m2();

}

class C implements A,B{

 // it has both m1 and m2;

}