多级继承“是一种”关系?

时间:2014-08-20 19:26:53

标签: java class inheritance extends multi-level

在Java中,如果我:

  • 创建一个A类
  • 创建一个扩展A类的B类(这意味着B"是" A),
  • 然后创建一个扩展B类的C类(这意味着C"是" B)。

这是否也意味着C类是A类?

5 个答案:

答案 0 :(得分:6)

是。 “是一个”关系考虑超类,它的超类(等等,最多Object),以及这些类实现的任何接口。

答案 1 :(得分:4)

这是一个例子: 如果所有的狗都是哺乳动物而所有的哺乳动物都是动物,那么所有的狗都必须是动物。

答案 2 :(得分:1)

这个问题事实上与Java几乎没有关系。它涉及知识表示模型。我可以想到特别是与DAG(有向无环图)有很大关系的本体。是的,"是"关系是可传递的,所以问题的答案也是"是"。你可以谷歌任何你不熟悉的概念(来自我的回答)。

答案 3 :(得分:1)

是的,C也属于A类型:

class A
{
    public A() { }
}
class B extends A
{
    public B() { }
}
class C extends B
{
    public C() { }
}

编译:

A instanceC = new C();

这是唯一可能的,因为AC

的超类

答案 4 :(得分:0)

是。这是一个证明它的例子。

    public class A {
    private int a=3;

    public int getA() {
        return a;
    }
}

public class B extends A {}

public class C extends B{}

并测试它

C c = new C();
c.getA(); //returns 3