让我们接受两个班级的实例
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
。我知道没有其他扩展是可能的,但我们不能称为继承类Shapes
和Object
多重继承吗? (因为从一个角度继承两个类是多重继承)
答案 0 :(得分:10)
它不是多重继承。您不是继承自Shapes
和Object
,而是继承自Shapes
<{1}} 。
只有一次从2个类继承,才能进行多重继承。
Object
Java中不允许这样做。
您所指的是Multilevel Inheritance。谢谢@BhavikShah
答案 1 :(得分:2)
您所描述的是单继承的定义。类继承其超类的属性和方法,以及所有超类的超类。只有一条返回根目录的路径(Object
)。在多重继承中,将有多个路径返回到根(甚至多个根)。
答案 2 :(得分:1)
这与Rectangle
和Shapes
的{{1}}不同。但Object
源自Rectangle
,而形状源自Shapes
,因此Object
为Rectangle
以及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;
}