“严格继承”的示例

时间:2019-06-05 21:23:18

标签: oop programming-languages

我正在阅读有关“严格继承”(link)的文章。它说:

  

如果后代不删除或修改(覆盖)任何继承的功能,则将继承称为严格,否则为非严格。

基本上,如果AB是类,并且AB的严格父亲,则类型B的对象的行为与{ {1}}具有更多功能。

我想知道是否有一种语言支持该想法。据我所知,Smalltalk和Java不支持它。是否有支持该想法的语言?我很高兴看到一个例子。如果没有语言支持该想法,那么可能是什么原因(为什么Java不支持该想法)?

我还读到C可以因其类型较弱而模仿该想法,但我想不到如何实现它。

1 个答案:

答案 0 :(得分:0)

您可以考虑使用Java(link)中的final关键字和C#(link)中的sealed关键字。标记有这些关键字的方法不能在子类中覆盖。

我同意应该谨慎使用方法重写,因为它可能会意外破坏父类的行为。因此,仅在完全控制情况时才使用它。有关更多详细信息,请参见此article