黑马程序员-关于三种继承方式

来源:互联网 发布:国家网络管理局 编辑:程序博客网 时间:2024/06/11 09:08
--------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ---------------------- 
1、关于公有继承,子类的对象可以直接访问基类的公有的函数或者变量。

基类成员对派生类的可见性对派生类来说,基类的公有成员和保护成员可见,基类的公有成员和保护成员作为派生类的成员时,他们保持原有状态,基类的私有成员不可见,基类的私有成员仍然是私有的,派生类不可以访问基类的私有成员。

基类成员对派生类对象的可见性对派生类对象来说,基类的公有成员时可见的,其他成员不可见。所以,在公有继承时,派生类的对象可以访问基类中的公有成员,派生类的成员函数可以访问基类的公有成员和保护成员。明确对象的可见性和类的可见性~~~~~~

2、私有继承,子类的对象和基类的对象是独立的,它不能直接访问基类的任何成员函数或者成员变量,但是可以通过自己内部的成员函数去访问公共和保护类型的。

基类成员对派生类的可见性对派生类来说,基类的公有成员和保护成员是可见的,基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。基类的私有成员是不可见的,派生类不可以访问基类中的私有成员。

基类成员对派生类对象的可见性对派生类对象来说,基类的所有成员都是不可见的。

所以在私有继承时,基类的成员只能由直接派生类访问,而无法再往下继承。

3、保护继承,子类的对象也不能直接访问基类的公共和受保护的成员函数或者变量,但是可以通过自己的成员函数去访问。

基类成员对派生类的可见性对派生类来说,基类的公有成员和保护成员是可见的,基类的公有成员和保护成员都作为派生类的保护成员,

并且不能被这个派生类的子类所访问。基类的私有成员是不可见的,派生类不可以访问基类中的私有成员。

基类成员对派生类对象的可见性对派生类对象来说,基类的所有成员都是不可见的。

所以在保护继承时,基类的成员只能由直接派生类访问,而无法再往下继承。

    任何子类都可以转换为父类,任何数据类型都可以转换为object类

--------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ----------------------