类有两种重要的成员:成员变量和方法。子类的成员中有一部分是子类自己声明定义的,另一部分是从它的父类继承的。子类继承父类的成员变量作为自己的一个成员变量,就好像该成员变量是在子类中直接声明一样,可以被子类中自己定义的任何实例方法操作。子类继承父类的方法作为自己的一个方法,就好像该方法是在子类中直接定义一样,可以被子类中自己定义的任何实例方法调用。


子类和父类在同一包中的继承性:

如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法,继承的成员变量或方法的访问权限保持不变。


子类和父类不在同一包中的继承性:

如果子类和父类不在同一个包中,父类中的private和友好访问权限的成员变量不会被子类继承,即子类只继承父类中的protected和public访问权限的成员变量和方法作为子类的成员变量和方法。


关于protected的进一步说明:

一个类A中的protected成员变量和方法可以被它的子孙类继承,比如B是A的子类,C是B的子类,D又是C的子类,那么B、C和D类都继承了A类的protected成员变量和方法。


如果用D类在D本身中创建了一个对象,那么该对象总是可以通过“.”运算符访问继承的或自己定义的protected变量和protected方法,但是,如果在另外一个类中,比如在Other类中用D类创建了一个对象object,该对象通过“.”运算符访问protected变量和protected方法的权限如下所述:


1. 对于子类D自己声明的protected成员变量和方法,只要Other类和D类在同一个包中,object对象就可以访问这些protected成员变量和方法。


2. 对于子类D从父类继承的protected成员变量或protected方法,需要追溯到这些protected成员变量或方法所在的“祖先”类,比如可能是A类,只要Other类和A类在同一个包中,object对象就能访问继承的protected变量和protected方法。


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)