Есть ли способ запретить классу сына вызывать публичный метод суперкласса в Java?
Есть ли способ запретить классу сына вызывать публичный метод суперкласса в Java?
Например
public abstract class TObject{
abstract public void quark();
}
public class Animal extends TObject{
public void quark(){
System.out.println("this is the animal");
}
}
public class Dog extends Animal{
@overide
public void quark(){
System.out.println("this is the animal");
**super.quark();**
}
}
In this example, The Dog call the **super.quark();** in it's quark method.
Но я не хочу, чтобы собака могла звонитьsuper.quark (); и я тоже не хочу менять
модификатор метода кварков в Animal для частного. Есть ли способ предотвратить это в компиляции?
Я запутался пару дней, кто может, elp me ........
Причина, по которой я это делаю, заключается в том, что я столкнулся с аналогичной проблемойплагин hudson scm.Я
создал класс, который расширяет SubversionSCM (официальный класс). Я только хотел
переопределить открытый метод суперкласса, затем вызвать открытый метод супер как
пример. но компиляция выдала ошибку. Я не знаю, почему, как это могло сделать? Доза ява есть
что-то вродеотражать путьЧтобы предотвратить это?