У меня есть интерфейс A, который определил 3 метода, которые должны реализовывать, и класс B должен реализовывать все три метода. Нет проблем. Но в классе C также я реализую интерфейс A, поэтому мне нужно написать реализацию для всех трех методов. Но мой класс C не хочет doSomthing3()
.При реализации интерфейса он наследует нежелательные методы
Я просто приводил здесь пример, но мое реальное приложение является большим с множеством методов.
Предположим, у меня есть 100 подклассов, реализующих интерфейс A, и теперь я хочу, чтобы 50 классов имели еще один новый метод, который я могу добавить в интерфейс A. Но тогда я должен реализовать его во всех 100 под классах? Почему я не наследую нежелательный метод.
public interface A {
public void doSomething1();
public void doSomething2();
public void doSomething3();
}
public class B implements A{
public void doSomething1(){
System.out.println("doSomething 1");
}
public void doSomething2(){
System.out.println("doSomething 2");
}
public void doSomething3(){
System.out.println("doSomething 3");
}
}
public class C implements A{
public void doSomething1(){
System.out.println("doSomething 1");
}
public void doSomething2(){
System.out.println("doSomething 2");
}
public void doSomething3(){ /*Do nothing in this class */ }
}
Вы не * наследуете * интерфейс, вы просто следуете * контракту реализации *. – NINCOMPOOP