java--受保护的访问(protected)

java中用于控制可见性的4个访问修饰符

  1. private————仅对本类可见
  2. public————对该项目中所有类可见
  3. protected————对本包和所有子类可见
  4. default(默认,不需要写明)————对本包可见

(偷个图)

回归正题

 

在某些时候,人们希望超类中的某些方法允许被子类访问,或这允许子类中的方法访问超类中的某个域,此时就需要将这些方法和或域声明为protected

但是在实际应用中,要谨慎使用protected属性。假设需要将设计的类提供给其它程序员使用,而在这个类中设置了一些受保护域,由于其他程序员可以由这个类再派生出新类,并访问其中的受保护域,这种情况下可能会对这个类的实现进行修改就必须通知所有使用这个类的程序员,违背了面向对象的封装原则(摘自java核心技术 卷1)

public class Animal{
    protected String name = "张三";
}
public class Dog extends Animal{

}
public class Test{
    Dog dog = new Dog();    
    System.out.print(dog.name);
}

当我们在开发的时候,如果将Animal中的name值做了修改后,就会影响继承了它类的对象的最后的输出结果.

 

在实际应用中,受保护的方法根据有实际意义,如果需要限制某个方法的使用,就可以将它声明为protected,这表明子类得到信任,可以正确的使用这个方法,其它子类则不行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值