我试图理解编程语言静态类型的好处,通过这个问题,我想知道为什么我们需要在声明中包含类型?它除了使类型显式外,还有其他作用吗?如果是这样,我就看不到它的意义。我知道静态类型允许在编译时进行类型检查,但如果我们省略显式类型声明,Java 是否仍然可以在编译时推断类型呢?
例如,在 Java 中:
myClass test = new myClass();
这里是否需要类型声明?如果我没记错,这是静态绑定,即使在编译时没有显式声明类型,Java也应该知道test的类型是myClass。
回复可能的重复问题:这不是关于静态与动态类型的问题,而是关于静态类型语言中类型推断的问题,正如被接受的答案所解释的那样。
class B extends A
,以及A a = new B()
,编译器应该如何推断a
的类型? - gefei