Java类方法定义String类型,将int作为param并返回null

时间:2017-04-01 17:19:42

标签: java types

暂时进入Java。在OCA 7书中看到了这个扩展类,只是想知道Baz类如何使用go方法并期望返回类型String,但参数采用int。然后返回null。

Baz是合法的构造还是会返回编译错误?我的意思是它返回String类型,但接受一个int参数然后返回null。怎么可能?

gulp.src

1 个答案:

答案 0 :(得分:2)

Baz扩展Foo以来,它将继承Foo的{​​{1}}方法。

此外,go()声明了自己的名为Baz的方法,其返回类型为go(int x)。这是两种不同的方法,编译器将它们视为这样,因为它们具有不同的signature(=名称+参数类型)。如果唯一的区别是返回类型,那么你会得到一个编译错误。

由于签名不同,编译器总是可以告诉您要调用哪种方法 - 在这种情况下,取决于在调用String时是否将int作为参数传递。

这就是go是一个完全有效的Java类的原因。

修改:Baz可以返回go(int x),因为null是一个类。当期望引用类的实例时,您总是可以传递/返回String。 (方法参数对于为什么这是可能的并不重要)