为什么Java/Scala使用扩展/实现关键字?

sud*_*d29 2 c# java inheritance scala

由于编译器可以轻松区分Java classinterfaceJava,为什么要提供显式关键字extendsimplements为代码添加详细程度?例如:

class Animal{}
interface FourLegged{}
class Dog : Animal, FourLegged {} // why can't we have this syntax in Java
Run Code Online (Sandbox Code Playgroud)

我没有看到任何理由为什么Java在未破坏现有代码库的情况下无法在将来的版本中提供类似C#的语法.有什么理由,请解释一下.

编辑

很抱歉在两者之间编辑我的问题,但我的类似问题也适用于Scala.正如帕特里克霍夫曼指出的那样:

他们当然可以,但是Java在语言方面总是比C#更冗长.

在Java的情况下,我同意他的看法.但我认为Scala更喜欢清洁而不是冗长(例如;可选),它也可以区分class,interfacetrait.为什么它也遵循Java在这方面的道路?

Pat*_*man 5

他们当然可以,但是Java在语言方面总是比C#更冗长.

从Java代码可以读取它扩展实现,在C#中,您必须依赖命名转换来查看它是否扩展实现.我喜欢Java的表现力,尽管我从早期的.NET开始就是C#开发人员.