关于方法访问控制符protected

本文探讨了方法能否调用的两个关键因素:方法是否属于对象及其访问控制符是否允许调用。通过实例分析了包外调用与类继承的关系,强调了访问控制符在方法可见性中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://bbs.youkuaiyun.com/topics/390297526?page=1#post-393055530

 

所以总结下来,关于方法能否调用有两点:

1. 方法是否属于该对象,自身的方法和继承的方法都属于对象,这是能否调用的前提,解决了有没有的问题。

2. 该方法的访问控制符(access modifier)与当前调用地点是否满足访问控制符的要求,解决了见没见的问题。

比如楼主提到的情形,方法调用发生在包外,调用点所在类又没有继承方法声明时所在类,因此不可调用(原因是方法不可见,不是没有)。而此时,调用方法的实例是继承了方法所在类这一事实构成了混淆点,它是继承,但不是方法调用发生点所在类的继承。 为什么要调用发生点所在类的继承,是因为访问控制的目的就是控制访问范围,当方法被访问(调用)时,它不希望在非继承外包类中被访问,这个限制是指方法调用地点,如果是指调用对象,那就要对实例所在类作访问控制了,但类的访问控制符不包括protected.

 

http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值