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



,假设我有一个名为 food 的类,它的子类名为 Chicken ,则是后者的子类 FILDET 。Fillet类也会从食品类中继承吗?另外,将圆角称为食物类的另一个子类是正确的吗?

简单答案:是的,对两个问题。每个子类都从其所有父母那里继承了所有行为和方法(如果可见的话(。

来自文档;

除了没有超类的对象,每个类都有一个和只有一个直接超类(单个继承(。在没有任何其他明确超类的情况下,每个类都是隐式的对象子类。可以从从类派生的类中得出的类得出类,依此类推,最终从最上方的object派生。据说这样的类是从继承链中的所有类中延伸到对象的。

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

它将根据大多数类别使用的访问修饰符明确继承。

它取决于访问说明器 private public 受保护的Food的所有 public 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
}

最新更新