2

以下のコードでは、メソッドclass Bがオーバーロードされていると言えますか?add

class A
{
   public void add()
     {
           //some code
     }

}
class B extends A
{
    public void add(int a)
     {
            // some code
     }

}
4

5 に答える 5

3

うなずく

はい、それはメソッドのオーバーロードの例です。メソッドオーバーライドの例は、

class B extends A{
    @Override
    public void add(){
        // do stuff
    }
}
于 2012-06-19T12:07:37.203 に答える
2

によって公開される API の観点からは、スーパークラスによって提供される場合でもBaddメソッドは既に存在します。add異なる引数を持つ別のメソッドを提供するため、これはオーバーロードです。同じ署名を提供したことは、オーバーライドされていたでしょう。

于 2012-06-19T12:08:37.797 に答える
1

はい、これはメソッドのオーバーロードです。

于 2012-06-19T12:12:27.070 に答える
0

Bはい、クラスがメソッドをオーバーロードしたと言えますadd()public void add()継承のため、クラスBにすでに存在します。同じ名前で、異なるシグニチャ(つまり、パラメータの数、タイプ、および順序)でメソッドを作成すると、オーバーロードになります。

于 2012-06-19T12:14:52.883 に答える
0

はい。次のオーバーロードのより簡単な例を考えてみましょう。

class A
{
   public void add()
     {
           //some code
     }

   public void add(int a)
     {
           //this method is overloading add() from within its own class
     }

}

ここで、B はコード例で A を拡張するため、add() を継承するため、add() が B で明示的に定義されていなくても、メソッドは使用可能であり、add(int a) を定義すると、 add() のオーバーロードと見なされる

于 2012-06-19T12:23:00.393 に答える