黑马程序员技术交流社区

标题: 对于protected修饰的方法 [打印本页]

作者: 疯狂程序    时间: 2013-4-10 15:30
标题: 对于protected修饰的方法
对于protected修饰的方法,我们要在子类中直接访问,是访问不了的。但是
子类可以对父类中的protected方法进行重写,也就是说子类可以继承父类的protected方法.

这句话集体是什么意思求大神?(子类是包外还是包内)

作者: 王军行    时间: 2013-4-10 15:50
本帖最后由 王军行 于 2013-4-10 15:53 编辑

包之间只能访问public修饰的类和其中的public修饰的成员。在同一个包中的类之间只有私有的不能访问无论是否是一个类的子类,这里子类可以访问说的是
子类和父类在不同包中。子类可以访问父类中protected修饰的成员
作者: 胡滨    时间: 2013-4-10 16:17

作者: 谭威    时间: 2013-4-10 19:29
"对于protected修饰的方法,我们要在子类中直接访问,是访问不了的"  这是能访问的。
"子类可以对父类中的protected方法进行重写"  对的
只要是子类,不管在包外还是包内都是能访问他们父类被protected修饰的方法
作者: 蓝色骨头    时间: 2013-4-10 19:31
访问权限的图表
之前经过测试总结的一个图
default 即不添加修饰符
                       同包                          不同包                          同包继承                                       不同包继承
private        通过该类的方法                通过该类的方法                 通过子类继承自父类的方法             通过子类继承自父类的方法
public        该类或该类的方法      该类或该类的方法      通过子类或子类继承自父类的方法   通过子类或子类继承自父类的方法  
default           该类或该类的方法      通过该类的方法          通过子类或子类继承自父类的方法   通过子类继承自父类的方法
protected      该类或该类的方法       通过该类的方法           通过子类或子类继承自父类的方法    通过子类继承自父类的方法
作者: 杨武林    时间: 2013-4-10 20:08
作用域       当前类    同一package   子孙类     其他package

           public        √         √             √           √

          protected     √          √             √           ×

          friendly      √          √             ×           ×

          private       √          ×             ×           ×
作者: Keith    时间: 2013-4-10 20:54
包外子类,protected的意义其实就是让子类去重写方法,然后子类自己使用.别的包外类不能使用

作者: HM朱蛟    时间: 2013-4-10 21:01
本帖最后由 HM朱蛟 于 2013-4-10 21:11 编辑

楼主你好  总结表楼上的哥们儿已经发了   我发几张以前学习截的过程图吧  希望能帮到你

注释掉后正常输出.png (20.97 KB, 下载次数: 116)

3

3

当权限是public时不管继承与否都可以拿到他的方法.png (31.8 KB, 下载次数: 123)

1

1

权限改成protected之后报错.png (33.29 KB, 下载次数: 125)

2

2

作者: lcjasas    时间: 2013-4-10 21:18
子类父类的包含,个人感觉可以用数学的并集、交集的思想理解。

∪:并集的符号
∩:交集的符号

子类∪父类=子类
子类∩父类=父类,子类与父类有相似的功能,并在父类的基础上扩展,有更多的功能。





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