繁体   English   中英

覆盖Java中的toString方法

[英]Override toString method in Java

public class Curiosity {



public void toString()//error because of this specific method name 
{
    System.out.println("method is successfully implemented");
}



}

如果要如何使用同名的方法“ toString()”?

如果不是我是否必须将其返回类型指定为String, 如果我想为toString使用void返回类型,我应该怎么做才能更改其返回类型?java是否允许这样做?

toString()方法必须返回String 这是重写ObjecttoString()的唯一方法。

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

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

范例:

public void toString (String something)
{
    System.out.println("method is successfully implemented " + something);
}

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

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

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

区分方法时,编译器不会考虑返回类型,因此即使两个方法具有不同的返回类型,也无法声明具有相同签名的两个方法。

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

public String toString()
{
   //your code here
}

这就是在Object类中定义的方式,如果要覆盖它,则必须使用确切的签名

或者,如果您仍然希望将方法名称用作toString,则可以更改方法的签名。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM