4 java inheritance multiple-inheritance
我知道
class A { }
class B extends A { }
class C extends B { }
Run Code Online (Sandbox Code Playgroud)
是完全合法的,我可以
C obj = new C();
obj.anyMethodfromA();
Run Code Online (Sandbox Code Playgroud)
是可能的.现在问题是这样如果我不想在C 类中访问A类方法,那么只应该继承B类方法.这可能吗?
C anotherObj = new C();
anotherObj.anyMethodfromA(); //can be illegal?
anotherObj.anyMethodfromB(); //should be legal.
Run Code Online (Sandbox Code Playgroud)
您无法删除classA方法classC,您可以做的就是覆盖classC中的classA方法并抛出UnsupportedOperationException.喜欢
class C extends B {
@override
public void someMethodWasInClassA() {
throw new UnsupportedOperationException("Meaningful message");
}
}
Run Code Online (Sandbox Code Playgroud)