【发布时间】:2013-11-30 01:50:20
【问题描述】:
所以,我正在尝试创建一个只能由其声明类及其子类直接访问的变量。我的印象是protected 是它的作用域修饰符,但我刚刚(重新)发现它还允许同一个包中的类直接访问。
是否有一个范围修饰符可以满足我的要求?
【问题讨论】:
标签: java inheritance scope
所以,我正在尝试创建一个只能由其声明类及其子类直接访问的变量。我的印象是protected 是它的作用域修饰符,但我刚刚(重新)发现它还允许同一个包中的类直接访问。
是否有一个范围修饰符可以满足我的要求?
【问题讨论】:
标签: java inheritance scope
是否有一个作用域修饰符可以满足我的需求?
No, there is not. 唯一允许在子类中访问的两个作用域是public 和protected。没有这样的修饰符是合理的,因为您无法控制谁可以扩展您的类,也不能扩展您的类:可以看到该类的每个人都可以扩展它,或者没有人可以(因为该类是final) .
【讨论】:
protected 应该没问题。