子类是否也会继承它的父类的超类?

时间:2018-04-28 15:20:02

标签: java

假设我有一个名为 Food 的类,它的一个子类名为 Chicken ,然后是后者的一个子类,名为 Fillet 。 Fillet类也会继承Food类吗?另外,将Fillet称为Food类的另一个子类是正确的吗?

3 个答案:

答案 0 :(得分:1)

简单回答:是的,两个问题。每个子类都从其所有父级继承所有行为和方法(如果它们可见)。

答案 1 :(得分:0)

取决于访问说明符私有公开受保护Food的所有公开成员都将由Fillet继承。

我认为源代码会对您有所帮助。

class base 
{
    public:
        int x;
    protected:
        int y;
    private:
        int z;
};

class publicDerived: public base
{
    // x is public
    // y is protected
    // z is not accessible from publicDerived
};

class protectedDerived: protected base
{
    // x is protected
    // y is protected
    // z is not accessible from protectedDerived
};

class privateDerived: private base
{
    // x is private
    // y is private
    // z is not accessible from privateDerived
}

答案 2 :(得分:0)

来自documentation;

  

Excepting Object,没有超类,每个类都有一个且只有一个直接超类(单继承)。在没有任何其他显式超类的情况下,每个类都隐式地是Object的子类。   类可以从派生自类的类派生的类派生,依此类推,最终派生自最顶层的类Object。据说这样的类是继承链中延伸回Object的所有类的后代。

因此FilletFood的后代和Chicken的子类。

它将从其父类的超类中显式继承,具体取决于最顶级类中使用的访问修饰符。