Java中的重写toString方法

Java中的重写toString方法,java,compiler-errors,tostring,object-to-string,Java,Compiler Errors,Tostring,Object To String,如果愿意,我如何使用同名的“toString()”方法? 如果不是,我是否必须将其返回类型设置为String如果我想为toString使用一个void返回类型,我应该如何更改其返回类型?java允许吗?toString()方法必须返回一个字符串。这是重写对象的toString()的唯一方法 如果希望使用相同的名称,但不覆盖对象的toString,则可以通过添加参数来重载名称toString,从而更改方法的签名 例如: public String toString() { return "

如果愿意,我如何使用同名的“toString()”方法?

如果不是,我是否必须将其返回类型设置为String如果我想为toString使用一个void返回类型,我应该如何更改其返回类型?java允许吗?
toString()
方法必须返回一个
字符串。这是重写
对象
toString()
的唯一方法

如果希望使用相同的名称,但不覆盖对象的
toString
,则可以通过添加参数来重载名称
toString
,从而更改方法的签名

例如:

public String toString()
{
    return "method is successfully implemented";
}
toString()
方法必须返回
字符串。这是重写
对象
toString()
的唯一方法

如果希望使用相同的名称,但不覆盖对象的
toString
,则可以通过添加参数来重载名称
toString
,从而更改方法的签名

例如:

public String toString()
{
    return "method is successfully implemented";
}

您试图以错误的方式重载toString()方法

重载方法通过传入方法的参数的数量和类型来区分。在代码示例中,draw(strings)和draw(inti)是不同且唯一的方法,因为它们需要不同的参数类型

不能用相同的名称、相同数量和类型的参数声明多个方法,因为编译器无法区分它们


<强>编译器在区分方法时不考虑返回类型,因此,即使它们具有不同的返回类型,也不能声明具有相同签名的两种方法。< /强>

您试图以错误的方式超载Strug()方法

重载方法通过传入方法的参数的数量和类型来区分。在代码示例中,draw(strings)和draw(inti)是不同且唯一的方法,因为它们需要不同的参数类型

不能用相同的名称、相同数量和类型的参数声明多个方法,因为编译器无法区分它们


<强>编译器在区分方法时不考虑返回类型,因此即使有不同的返回类型,也不能声明具有相同签名的两种方法。< /强>

< p>在类中使用<代码> toString()/<代码>的唯一方法是将返回类型保持为<代码>字符串

public void toString (String something)
{
    System.out.println("method is successfully implemented " + something);
}
这就是它在
Object
类中的定义方式,如果您希望覆盖它,则必须使用确切的签名

或者,如果您仍然希望使用方法名作为toString,那么您可以做的是更改方法的签名

方法的签名包括方法的名称和参数。
请记住,返回类型不是方法签名的一部分

在类中使用
toString()
的唯一方法是将返回类型保留为
String

public void toString (String something)
{
    System.out.println("method is successfully implemented " + something);
}
这就是它在
Object
类中的定义方式,如果您希望覆盖它,则必须使用确切的签名

或者,如果您仍然希望使用方法名作为toString,那么您可以做的是更改方法的签名

方法的签名包括方法的名称和参数。
请记住,返回类型不是方法签名的一部分

您可以查看java.lang.Object的源代码

toString方法具有字符串类型的返回值。您不能有另一个名为toString的方法,但返回类型不是String


实际上,在Java中,在任何继承关系中都是禁止的。调用该方法时,编译器只关心名称和参数。那么,它如何区分名称相同但返回类型不同的方法呢

您可以查看java.lang.Object的源代码

toString方法具有字符串类型的返回值。您不能有另一个名为toString的方法,但返回类型不是String


实际上,在Java中,在任何继承关系中都是禁止的。调用该方法时,编译器只关心名称和参数。那么,它如何区分名称相同但返回类型不同的方法呢

toString()不能为空,它必须始终返回字符串您不能这样做,只能返回
null
其他内容,但请注意
nullpointerException
toString()不能为空,它必须始终返回字符串您不能这样做,只需返回
null
其他内容,但请注意
nullpointerException
或只使用
return null
athernavive of void:)@BhargavModi是的,但这样他就不能将toString()正确地用作任何代码行System.out.println(对象)Wild print方法成功实现,然后为null,它看起来会出错,或者只是使用
return null
atlerative of void:)@BhargavModi是的,但是他将无法正确使用toString()作为任何代码行系统。out.println(对象)Wild print方法成功实现,然后为null,看起来wrong@Seelenvirtuose:这来自oracle文档:定义:方法声明的两个组件包括方法签名、方法名称和参数类型@Seelenvirtuose:这来自oracle文档:定义:方法声明的两个组件包括方法签名、方法名称和参数类型。