2017-03-04 19 views
0

在下面的程序中,我试图使用Wrapper类的静态'toString'方法将Numbers转换为字符串。Java Wrapper类的'toString'方法是否被重载,或者它是一个在不同类中具有不同定义的抽象方法?

class NumberToStringConversion 
{ 
    public NumberToStringConversion() 
{ 
    String I=Integer.toSring(i); 
    String F=Float.toString(f); 
    String D=Double.toString(d); 
    String L=Long.toString(l); 
} 
} 

这里,Integer,Float,Double和Long是包装类,它们包装了各自的基元数据类型。它看起来像toString方法存在于所有上述包装类中。这是否意味着toString方法过载?或者它是不同类中定义不同的方法吗?

+0

号他们对不同类别的不同的方法,但碰巧有相同的名称。 – Jeremy

回答

5

你调用的toString()方法是静态方法。继承不适用于静态方法。每个包装类都有静态和非静态的toString()方法。静态的是彼此无关的。非静态的覆盖Object.toString()

Integer,例如,有三个toString()方法:

String toString(); // overrides Object.toString() 
static String toString(int i); 
static String toString(int i, int radix); 
+0

谢谢约翰。我明白,使用类名“Integer.toString”调用静态方法,并且即使该类从未实例化并且没有创建对象也可以使用。那么,这只是为了方便起见,所有这些方法都有相同的名称? – Sivani

+0

是的,它的一致性。 –

相关问题