java - 当有人重写抽象方法时,我可以强制保护它们吗?

标签 java access-modifiers

在我的抽象类中,我有这样的东西:

public Object methodIWantToExpose(){
  // ... 
  methodIDontWantExposed()
  // ...
}

protected abstract void methodIDontWantExposed();

问题是,我想强制扩展 methodIDontWantExposed() 的人使其受到保护,因为我不希望扩展类同时暴露 methodIDontWantExposed 和 methodIWantToExpose。

有没有办法做到这一点(或可能避免我的问题的不同方法)?

最佳答案

没有。子类总是可以使方法更加公开。

即使他们不能用你在类里面的方法做到这一点,他们总是可以这样写:

public void callsMethodIDontWantExposed() {
    methodIDontWantExposed();
}

...所以你会遇到同样的情况。

关于java - 当有人重写抽象方法时,我可以强制保护它们吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28671534/

相关文章:

java - 检查单选按钮的状态

java - 如何使用 CXF.xml 更改 org.apache.cxf.stax.maxTextLength

java - JLS哪一部分说匿名类不能有public/protected/private成员类

java - 为什么 Java 将包访问设置为默认?

java - 为什么 protected 修饰符在 Java 子类中的行为不同?

java - 从 GUI 拆分数组

java - 在内部类运行中使用变量

java - BDDMockito 调用真正的静态模拟方法

c# - 访问修饰符的编译

java - 关于访问说明符