Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java类方法定义字符串类型,将int作为参数并返回null_Java_Types - Fatal编程技术网

Java类方法定义字符串类型,将int作为参数并返回null

Java类方法定义字符串类型,将int作为参数并返回null,java,types,Java,Types,现在只需要学习一些Java。在OCA 7书中看到这个扩展类,只是想知道为什么类Baz使用go方法并期望返回类型字符串,但参数采用int。然后返回为null Baz是法律解释还是返回编译错误?我的意思是它返回字符串类型,但接受int参数,然后返回null。这怎么可能 public class Foo { void go() {} } public class Baz extends Foo { String go(int x) { return null;

现在只需要学习一些Java。在OCA 7书中看到这个扩展类,只是想知道为什么类Baz使用go方法并期望返回类型字符串,但参数采用int。然后返回为null


Baz是法律解释还是返回编译错误?我的意思是它返回字符串类型,但接受int参数,然后返回null。这怎么可能

public class Foo {
    void go() {}
}

public class Baz extends Foo {
    String go(int x) {
        return null;
    }
}

由于
Baz
扩展了
Foo
,它将继承
Foo
go()
方法

另外,
Baz
声明了自己的方法,名为
go(intx)
,返回类型为
String
。这是两种不同的方法,编译器将其视为两种方法,因为它们具有不同的(=名称+参数类型)。如果唯一的区别是返回类型,那么就会出现编译错误

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

这就是为什么
Baz
是一个完全有效的Java类


编辑:
go(int x)
可以返回
null
,因为
String
是一个类。当需要引用类的实例时,始终可以传递/返回
null
。(方法参数对于为什么可能这样做根本不重要)

因为
Baz
扩展了
Foo
它将继承
Foo
go()
方法

另外,
Baz
声明了自己的方法,名为
go(intx)
,返回类型为
String
。这是两种不同的方法,编译器将其视为两种方法,因为它们具有不同的(=名称+参数类型)。如果唯一的区别是返回类型,那么就会出现编译错误

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

这就是为什么
Baz
是一个完全有效的Java类


编辑:
go(int x)
可以返回
null
,因为
String
是一个类。当需要引用类的实例时,始终可以传递/返回
null
。(方法参数对于为什么可能这样做根本不重要)

go()
go(int)
非常重要。不要因为他们的名字相同而感到困惑。他们的签名不一样。@dhke我认为他根本不在乎遗产。他只是感到困惑,当它应该返回一个
字符串时,它可以返回
null
“Baz是一个合法的构造还是会返回编译错误?”好吧,当你尝试它时发生了什么?这是从书中得到的,我没有使用IDE
go()
go(int)
都非常有用。不要因为他们的名字相同而感到困惑。他们的签名不一样。@dhke我认为他根本不在乎遗产。他只是感到困惑,当它应该返回一个
字符串时,它可以返回
null
“Baz是合法的构造还是会返回编译错误?”好吧,当你尝试它时发生了什么?这是从书中得到的,我没有使用IDEyes,它的意思是返回类型字符串,而是接受一个int参数,然后返回null。这怎么可能?@emporio参数与返回类型完全无关。该参数的唯一原因是能够将信息传递到方法中,而不管您如何处理它。是的,因此当end返回null时,这是合法的。是的,它意味着返回类型String,但接受int参数,然后返回null。这怎么可能?@emporio参数与返回类型完全无关。这个参数的唯一原因是能够将信息传递到方法中,而不管您对它做了什么。是的,所以当end返回null时,这是合法的。