需要关键字来指定该方法是从其 parent class 扩展而来的编程语言

Programming Languages where a keyword is needed to specify that the method is extended from its parent class

请原谅我的无知,但是有谁知道任何严格执行我在标题中给出的条件的语言吗?例如,使用 Python 语法,我们可以用这样的新方法扩展 class

class A:
    pass

class B(A):
    def foo(self):
        pass

但是是否有一种语言需要额外的关键字,比如 new,以指定此方法是 child class 所独有的,而不是重写其方法parentclass/es?例如:

class A:
    pass

class B(A):
    def new foo(self):
        pass

我问这个是因为,当我在一个需要多重继承的项目上工作时,比如 class B(A, C, D),我看到了一个在 B 中定义的方法,我需要检查给定的是否方法来自其 parent class 之一或它自己的方法,我发现它非常乏味。

我能想到的最接近的是 Java 中的 @Override 注释,它可以应用于方法声明,以便编译器检查它是否覆盖了继承的方法(或实现接口方法)。

当与 linter 一起使用时,检查所有方法覆盖是否都用 @Override 注释,然后你的 IDE 会在你省略注释时给你一个 linter 警告。例如,IntellIJ IDEA and SonarSource 两者都有 linter 规则。

只要你严格遵守 linter 警告,那么它就是这个意义上的“严格”,但当然 linter 警告实际上并不会阻止你的代码被编译或执行。尽管如此,我不知道真正的编程语言有更接近的例子。不幸的是 Java 没有多重继承,所以它不能直接适用于您的问题。