package pkg2;
import pkg.Base2;
public class Charpter6inPkg2Extend extends Base2{
/*Charpter6inPkg2Extend objC=new Charpter6inPkg2Extend();
*NOT ALLOWED Exception in thread "main" java.lang.StackOverflowError
*/
public static void main(String[] args) {
Base2 objB2=new Base2();
//objB2.Base_method_protected();//not visible
//objB2.defaultTypeMethod();//not visible
Charpter6inPkg2Extend objC=new Charpter6inPkg2Extend();
objC.Base_method_protected();//good news, VISIBLE
//objC.defaultTypeMethod();//not visible
}
void function1() {
Base2 objB2=new Base2();
//objB2.Base_method_protected();//not visible
//objB2.defaultTypeMethod();//not visible
Charpter6inPkg2Extend objC=new Charpter6inPkg2Extend();
objC.Base_method_protected();//good news, VISIBLE
//objC.defaultTypeMethod();//not visible
}
}
output:
A Protected method from Base class
总结:
在子类定义中,在各函数/方法中生成的该子类的对象,该对象可以调用基类的protected数据/方法(default不行)。