2011-08-18 18 views
5

親クラスが2つのパラメータを持つaddメソッドを持つ場合、子クラスの3つのパラメータを持つ新しいaddメソッドを追加すると、オーバーロードと呼びますか?オーバーロードの明確化

ありがとうございます。

+0

はい。オーバーライドとは対照的に – Ingo

答えて

6

はい、2つのパラメータを持つメソッドがサブクラスによって継承されるため、3つのパラメータを持つメソッドはオーバーロードメソッドと呼ばれます。

class A 
    add(param1, param2) 

class B 
    add(param1, param2)   <-- inherited 
    add(param1, param2, param3) <-- overloading the above method 

Overriding and Hiding Methodsの公式歩道からの引用:

注:サブクラスでは、は、あなたがスーパーから継承されたメソッドをオーバーロードすることができます。このようなオーバーロードされたメソッドは、スーパークラスメソッドを隠すことも無視することもなく、サブクラス固有の新しいメソッドです。

(あなたはおそらくすでに考え出したとして、三つのクラスとメソッドがオーバーライドするメソッドではありません。)

3

オーバーロードは、メソッドに名前が同じで異なるシグネチャがある場合です。 オーバーライド - メソッドがIDENTICAL NAMESとIDENTICAL SIGNATUREを持つ場合。

5

はい、これは過負荷です。メソッドが2つのパラメータを持つメソッドと同じクラスにあっても、オーバーロードされます。

異なる数のパラメータがある場合(およびvarargsパラメータがない場合)、オーバーロードはかなり簡単です。同じ数のパラメータを持つメソッドを持つ場合、コンパイラは適用可能な候補メソッドの中で「最良の」メソッドを選択する必要があります。

オーバーライドが実行されるのに対し、コンパイル時に決定されるの過負荷をメソッドがコールされるオブジェクトの実際のタイプに基づいて実行時に決定されることに注意してください。

1

メソッド名はすでに存在しますが、パラメータが異なる場合は、はい、オーバーロードしています。

2

はい、間違いなくオーバーロードと継承の便利な機能。

0

yep ...メソッドが同じクラスにある場合でもオーバーロードメソッドです。

PS:私は、三つのパラメータを持つ新しいメソッドは、同じ名前と戻り値の型を持っていると仮定し