访问权限修饰符Protected专题

 

上图描述:A类在a包下,m()方法被protected修饰

上图描述:B类也在a包下,B类是A类的子类。

解析:B类和A类是同包类,BA类的子类,因此b对象可以调用m()方法。

上图描述:C类也在a包下。

解析:C类与A类、B类属于同包类,因此a对象和b对象都可以调用m()方法。

上图描述:D类在b包下,D类是A类的子类。

解析:虽然D类与A不同包,但DA子类因此d对象可以调用m()方法。

上图描述:E类在b包下。

解析:E类与A不同包E类也不是A子类EA类也不是本类,因此d对象不能调用m()方法

上图描述:E类在b包下,E类是A类的子类。

解析:E类与A不同包EA类的子类,但d对象却不能不能调用m()方法。原因如下:E类是A类的子类,看似符合要求,但d对象是由D类创建,并非E类创建,而E类与A类又不同包,所以d对象不能调用m()方法。

 

综上得出结论:如果两个类不同包,但构成父子关系,则父类中被protected修饰是方法,子类对象调用该方法时必须在对应的子类中(在子类中调用该方法时必须是由子类创建的对象才能调用该方法)

转载于:https://www.cnblogs.com/shenshengsu/p/10513774.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值