Я знаю, чтоRestricted наследование в Java
class A { }
class B extends A { }
class C extends B { }
является абсолютно законным, и я могу
C obj = new C();
obj.anyMethodfromA();
возможно. Теперь вопрос в том, что, если я не хочу получать класс A методов в класс C только класс B методы должны наследоваться. Возможно ли это?
C anotherObj = new C();
anotherObj.anyMethodfromA(); //can be illegal?
anotherObj.anyMethodfromB(); //should be legal.
Это возможно только в том случае, если 'B' не расширяет' A'. Хотя вы можете переопределить методы 'A' в' C' и заставить их бросать 'UnsupportedOperationException', но это не сделает их незаконными для вызова во время компиляции. – marstran