欢迎加入QQ:498903810 一起交流、讨论知识,里面有大佬,也有小白,天下码农一家亲,大家一起讨论进步。
细说继承
感觉上一篇博客对于继承说的不够详细,所以我在这一篇再详细的说一下继承。
现在给大家详细说一下继承的方式:public、protected、private。
public (父类访问级别) | protected (父类访问级别) | private (父类访问级别) |
---|---|---|
public (继承方式) | public | protected |
protected (继承方式) | protected | protected |
private (继承方式) | private | private |
在来介绍以下单个类的访问控制:
public:修饰的成员变量方法,在类的内部类的外部都能使用。
protected:修饰的成员变量方法,在类的内部使用,在继承的子类中可以使用,不能在类的外部使用。
private:修饰的成员变量方法,只能在类的内部使用,不能在类的外部使用。
C++中的继承方式会影响子类的对外访问属性。
public继承:父类成员在子类中保持原有访问级别。
protected继承:父类中public成员会变成protected
父类中protected成员仍然为protected
父类中private成员仍然为private
private继承:父类成员在子类中变成private成员。
父类private成员在子类中仍然存在,但是却无法访问,无论那种方式继承,派生类(子类)都不能直接使用基类的私有成员。
继承主要影响父类的属性在子类的子类的是否可以访问。如果是public
继承,子类的子类(孙子类)仍然可以从子类里继承得到父类的属性,并且可以访问且类外也可以访问,如果是protected
继承那么子类外将不可以访问。但是仍然可以让孙子类去继承子类在孙子类内去使用,在孙子类外不能访问。如果是private
继承,那么子类里可以使用,但是子类的类外不能使用,且孙子类继承子类之后不能访问父类的属性和方法。
差不多就是这些了,继承方式影响的不仅仅是子类,还会对孙子类类有影响。
大多数继承都是public
继承
子类、父类、子类普通成员变量的构造析构顺序
构造顺序:父类构造—子类成员变量构造—子类构造
析构顺序:子类析构—子类成员变量析构—父类析构