Почему Java позволяет повысить видимость защищенных методов в дочернем классе?
abstract class Base{
protected abstract void a();
}
class Child extends Base{
@Override
public void a(){
//why is this valid
}
}
Почему мы можемt уменьшить видимость, но можно ли ее увеличить?
Также мне нужно реализоватьШаблон в котором видимые публичные методы могут быть только базового класса.
Пример:
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
}
}
Теперь, если Java позволяет увеличить видимость, то есть два метода, видимых публично ??
Я знаю, что интерфейс - это одно из решений, но есть ли другой выход ???