如果 AbstractMethodA 不适用于 Child-B,则 Child-B 不应继承自 Parent-A。
或者相反,如果 Child-B 继承自 Parent-A,并且 AbstractMethodA 不适用于孩子,那么它也不应该在父母中。
通过在 Parent-A 中放置一个方法,您是说该方法适用于 Parent-A 及其所有子级。这就是继承的意思,如果你用它来表示不同的东西,你最终会和你的编译器发生严重的争论。
[编辑-也就是说,如果该方法确实适用,则 Mladen Prajdic 的回答很好,但对于所涉及的一个或多个类不应该做任何事情。什么都不做的方法在 IMO 与不适用的方法不同,但也许我们所说的“不适用”并不是指同一件事]
另一种技术是无论如何在 Child-B 中实现该方法,但让它做一些极端的事情,比如总是返回失败,或者抛出异常,或者其他什么。它可以工作,但应该被视为有点笨拙而不是干净的设计,因为这意味着调用者需要知道他们所拥有的被视为 Parent-A 的东西真的是一个child-B,因此他们不应该调用AbstractMethodA。基本上,您已经放弃了多态性,这是 OO 继承的主要好处。就我个人而言,我更喜欢这样做而不是在基类中实现抛出异常,因为这样子类就不会因为“忘记”实现该方法而“意外地”表现得不好。它必须实现它,如果它实现它不起作用,那么它会明确地这样做。糟糕的情况应该是嘈杂的。