黑马程序员技术交流社区
标题: protected能不能修饰类 [打印本页]
作者: 刘云龙 时间: 2013-3-10 09:57
标题: protected能不能修饰类
protected能不能修饰类
作者: scott0610 时间: 2013-3-10 10:07
能把你的问题说详细一点吗
作者: 小丑的媳妇2 时间: 2013-3-10 10:21
本帖最后由 朱荣宁. 于 2013-3-10 10:41 编辑
我来回答你,希望对你有用.
protected可以修饰成员变量和方法,被称为受保护的成员变量和方法,
而且必须在同一包中才能被访问。它不能修饰类
protected 标识符主要作用是使类或接口的成员仅在该类或接口以及当前类的所有派生类中可见。
当前类之外的代码无法访问 protected 成员。全局范围内的类和接口不能使用 protected 修饰符来标记。
类或接口(包括嵌套类和嵌套接口)的任何成员都可以使用 protected 修饰符来标记。
不能将 protected 修饰符与其他任何可见性修饰符(public、private 或 internal)组合。
我在这里给你举出一个很简单的例子:
代码如下:
- class A
- protected int weight ;
- protected int f( int a,int b )
- {
- // 方法体
- }
- }
假设B与A在同一个包中,则- class B
- {
- void g()
- {
- A a=new A();
- A.weight=100;//合法
- A.f(3,4); //合法
- }
- }
你可能会问到什么是在同一个包中?
就是用package打包在一起的class ,叫在同一个包中
没有使用package打包的,在同一目录下的类也会被视做同一个包。
所以不能用protected和private修饰类。希望对你用用!
作者: 戴乾刚 时间: 2013-3-10 10:31
外部类只能用public,abstract,final修饰
内部类可以用protected修饰
作者: 张宁 时间: 2013-3-10 10:36
能问的清楚一点吗???
作者: 沈文杰 时间: 2013-3-10 10:41
protected不能修饰类
类主要作用:供其他类调用或被继承,这里就有同包和异包两种情况了;
同包:默认的权限就可以相互调用了,无需用到protected
异包:那个类是public的,不然就已经没有机会访问了,更别提继承了
所以用protected是多余的。而java认为他是多余的编译都无法通过了。
作者: 谢洋 时间: 2013-3-10 10:58
除了内部类在外部类的成员位置上可以
作者: 黑马17期-闫东东 时间: 2013-3-10 11:58
java类只能是public或者默认的
外部类只能使用了public修饰或者是默认。只要此类没有用final修饰都可以被其它类继承。如果可以用protected修饰那不是重复了吗。如果是内部类那就可以使用protected修饰了 , 被protected 修饰的类成员可以被这个类自己,类的子类(可以在不同包下)和同一个包的其他类访问其他范围的类不允许类成员。
作者: 刘松老师 时间: 2013-3-10 12:01
外部类能用public,abstract,final修饰,内部类处于外部类成员位置时可以用protected修饰
作者: 小路飞 时间: 2013-3-10 12:01
本帖最后由 侯国奇 于 2013-3-10 12:03 编辑
朱荣宁. 发表于 2013-3-10 10:21
我来回答你,希望对你有用.
protected可以修饰成员变量和方法,被称为受保护的成员变量和方法,
而且必须在同 ...
学有所悟,说得挺详细的,再加上内部类的说明就好了
作者: 沈文杰 时间: 2013-3-10 13:16
沈文杰 发表于 2013-3-10 10:41
protected不能修饰类
类主要作用:供其他类调用或被继承,这里就有同包和异包两种情况了;
昆哥辛苦啦,;P
作者: wangjinyu501 时间: 2013-3-10 13:28
当然不能了
作者: 李红志 时间: 2013-3-10 15:38
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |