Если вы хотите запретить вызов destroyEverything()
из класса C:
public class A {
public void travel() {
System.out.println("Travel from A");
}
public void makePee() {
System.out.println("Call from A");
}
}
public class B extends A {
public void travel() {
super.travel();
System.out.println("Travel from B");
}
public void makePee() {
super.makePee();
System.out.println("Call from B");
}
}
Затем на C:
public class C extends A {
public void travel() {
super.travel();
System.out.println("Travel from C");
}
public void makePee(){
throw new UnsupportedOperationException("Not supported from C");
}
}
НО, если что вы хотите, чтобы не наследовал вещи от A , это, вероятно, недостаток в дизайне вашей иерархии классов, и класс C не должен наследовать от A.
Пример ошибки проектирования: Класс A - Животное , класс B - Бобр , и вы хотите, чтобы ваш класс C Кадилла c наследовал материал от Животного поскольку Животное уже имеет метод путешествия .
Так как, возможно, вы не хотите наследовать метод makePee (каждое животное мочится, но Cadillacs нет), лучше двигаться Cadillacs (класс C) в другую иерархию классов или найти другой дизайн класса