相关疑难解决方法(0)

为什么Java允许增加子类中受保护方法的可见性?

abstract class Base{
      protected abstract void a();
}

class Child extends Base{
      @Override
      public void a(){
          //why is this valid
      }
}
Run Code Online (Sandbox Code Playgroud)

为什么我们不能降低能见度但可以增加它?

此外,我需要实现模板模式,其中公共方法可见只能是基类.

例:

abstract class Base{
      public void callA(){
      //do some important stuff
      a();
      }

      protected abstract void a();
}

class Child extends Base{
      @Override
      public void a(){
          //why is this valid
      }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果java允许增加可见性,那么有两种方法可以公开显示?

我知道接口是一个解决方案但是还有其他方法吗?

java design-patterns

16
推荐指数
3
解决办法
1万
查看次数

标签 统计

design-patterns ×1

java ×1