A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

      书上指出外部类的修饰符只能用默认和public,而类的成员可以用四种修饰符(private、默认、protected、public),其中类成员的修饰符是对于类而言的,很容易理解,但是外部类的修饰符不能用protected修饰是怎么考虑的呢?求大神讲解!

4 个回复

倒序浏览
求大神指导
回复 使用道具 举报
类本身的继承是通过extends的,如果禁止继承的话用final修饰就行了,  而protected不能用在本身,因为继承继承的父类的成员方法和变量,所以拿protected对其进行权限控制,懂了?
回复 使用道具 举报
对外部类用protected时报错:
Illegal modifier for the class Demo; only public, abstract & final are permitted。
对类访问权限的界定就是包外和包内: 即最大访问权限public和包访问权限friendly(默认权限) 这两种。protected权限介于public和包访问权限之间,被protected修饰的成员具有包访问权限,同时对其他包的继承该类的子类可见,子类可以使用父类的public和protected成员。
将类定义为protected,包外的类无法访问该类,更别提继承,protected修饰类毫无意义
回复 使用道具 举报
谢谢大神们解答
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马