protected数据和方法

经常需要允许子类访问定义在父类中的数据域或方法,但不允许非子类访问这些数据域和方法。可以使用关键字protected完成该功能。父类中被保护的数据域或方法可以在它的子类中访问。

修饰符private、protected和public都称为可见性修饰符或可访问性修饰符,因为它们指定如何访问类和类的成员。这些修饰符的可见性关系为:private < protected < public。下表总结了类中成员的可访问性。

数据和方法的可见性
类中成员的修饰符在同一类内可访问在同一包内可访问在子类内可访问在不同包可访问
public++++
protected+++-
default++--
private+---

使用private修饰符可以完全隐藏类的成员,这样,就不能从类外直接访问它们。不使用修饰符就表示允许同一个包里的任何类直接访问类的成员,但是其他包中的类不可以访问。使用protected修饰符允许任何包中的子类或同一包中的类访问类的成员。使用public修饰符允许任意类访问类的成员。

类可以以两种方式使用:一种是为创建该类的实例;另一种是通过扩展该类创建它的子类。如果不想从类外使用类的成员,就把成员声明成private。如果想让该类的用户都能使用类的成员,就把成员声明在public。如果想让该类的扩展都使用数据和方法,而不想让该类的用户使用,则把成员声明成protected。

修饰符private和protected只能用于类的成员。public修饰符和默认修饰符(也就是没有修饰符)既可以用于类的成员,同样也可以用于类。一个没有修饰符的类(即非公共类)是不能被 其他包中的类访问的。

注意 子类可以覆盖它的父类的protected方法,并把它的可见性改为public。但是,子类不能削弱父类中定义的方法的可见性。例如:如果一个方法在父类中定义为public,在子类中也必须定义为public。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值