【JAVA学习路-think in java】:在"不同包"中子类能够调用protected及default

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不行)。

发布了42 篇原创文章 · 获赞 23 · 访问量 8284

猜你喜欢

转载自blog.csdn.net/Andrew_Zeng/article/details/104111716