2017-03-04 11 views
0

以下のプログラムでは、NumerbersをWrapperクラスの静的な 'toString'メソッドを使用して文字列に変換しようとしています。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メソッドがオーバーロードされていますか?異なるクラスで異なる定義を持つabstractメソッドですか?

+0

番号彼らは、異なるクラスの異なる方法だが、同じ名前を持つことが起こる:

Integerは、例えば、3つのtoString()メソッドを持っています。 – Jeremy

答えて

5

呼び出しているtoString()メソッドは静的メソッドです。継承は静的メソッドには適用されません。各ラッパークラスには、静的メソッドと非静的メソッドの両方があります。toString()静的なものはお互いに無関係です。非静的なものはObject.toString()を上書きします。

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

ありがとうジョン。静的メソッドは、クラス名 'Integer.toString'を使用して呼び出され、クラスがインスタンス化されず、オブジェクトが作成されていない場合でも使用できます。だから、利便性のために、これらのメソッドはすべて同じ名前を持っていますか? – Sivani

+0

はい、一貫性があります。 –

関連する問題