Dotcpp  >  编程教程  >  Java子类与继承  >  Java子类的继承性

Java子类的继承性

点击打开在线编译器,边学边练

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


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

如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是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方法。



本文固定URL:https://www.dotcpp.com/course/759

上一课:

Java子类与父类

下一课:

Java子类与对象

Java教程
第一章 Java入门
第二章 Java运算符和表达式
第三章 Java流程控制
第四章 Java类和对象
第五章 Java子类与继承
第六章 Java接口与实现
第七章 Java内部类与异常类
第八章 Java常用实用类
第九章 Java输入输出流
第十章 Java数组
Dotcpp在线编译      (登录可减少运行等待时间)