黑马程序员技术交流社区

标题: 一个类的构造方法是用protect修饰的。这个类该怎么用 [打印本页]

作者: 张综    时间: 2012-12-6 23:25
标题: 一个类的构造方法是用protect修饰的。这个类该怎么用
一个类的构造方法是用protect修饰的。这个类该怎么用,这个类有什么用。为什么用这个修饰符修饰。例如calendar类,他的修饰符就是protect。为什么要用这个修饰符修饰呢。有什么好处。我想使用这个修饰符的方法。该怎么用?我不能new他的对象。那我该怎么使用他的方法。
作者: 张其辉    时间: 2012-12-6 23:47
protect修饰的方法,只能被同一个包中或者存在子父类关系的类中使用,如果不存在该种关系就不能被使用。这个权限比java中默认的权限大一点,就是说如果子父类不在同一个包中,也是可以被使用的,但是默认权限就只能是本包中了。不过这种不常见,一般情况下用不到。
java中的四种权限排序,由大到小:public ,protect ,默认,private
你想使用这个修饰符修饰的方法只要满足两个条件就好:1、存在子父类关系。2、同在一个包中
作者: 魏秀盛    时间: 2012-12-6 23:47
本帖最后由 魏秀盛 于 2012-12-6 23:53 编辑

在有些时候,希望超类中的某些方法允许被子类访问,或允许子类的方法访问超类的某个域,需要将这些方法声明为protected,这种限制有助于避免滥用受保护机制,使得子类只能访问受保护域的权利。简单来说,protected对于子类、本类内部来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
归纳一下Java用于控制可见性的4个访问修饰符:
1)仅对本类可见------private
2)对所有类可见--------public
3)对本包和所有子类可见----protected
4)对本包可见----默认,所谓默认是指没有任何标明任何修饰符的情况,这是一种不太受欢迎的形式;
Calendar类是一个抽象类,它的修饰符是public,可以用Calendar.DATE获取今天是这个月的第几天(默认是从0开始计数);




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