黑马程序员技术交流社区

标题: 四种访问修饰符疑问??? [打印本页]

作者: hushaojie@0719    时间: 2016-7-27 22:56
标题: 四种访问修饰符疑问???
      书上指出外部类的修饰符只能用默认和public,而类的成员可以用四种修饰符(private、默认、protected、public),其中类成员的修饰符是对于类而言的,很容易理解,但是外部类的修饰符不能用protected修饰是怎么考虑的呢?求大神讲解!
作者: hushaojie@0719    时间: 2016-7-28 21:28
求大神指导
作者: yuxing    时间: 2016-7-28 22:43
类本身的继承是通过extends的,如果禁止继承的话用final修饰就行了,  而protected不能用在本身,因为继承继承的父类的成员方法和变量,所以拿protected对其进行权限控制,懂了?
作者: nblity007    时间: 2016-7-28 23:13
对外部类用protected时报错:
Illegal modifier for the class Demo; only public, abstract & final are permitted。
对类访问权限的界定就是包外和包内: 即最大访问权限public和包访问权限friendly(默认权限) 这两种。protected权限介于public和包访问权限之间,被protected修饰的成员具有包访问权限,同时对其他包的继承该类的子类可见,子类可以使用父类的public和protected成员。
将类定义为protected,包外的类无法访问该类,更别提继承,protected修饰类毫无意义
作者: hushaojie@0719    时间: 2016-7-29 22:39
谢谢大神们解答




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2