QA@IT
«回答へ戻る

回答を投稿

次のようにclass2でオーバーロード関数を実装するのが自然に思えます。

abstract class class1
{
    abstract public int aa(int a);
}

class Class2 : class1
{
    public override int aa(int a)
    {
       // 何か処理する
    }

    public int aa(int a,string a)
    {
       // ここだけオーバーロード
    }
} 

class Class3 : class1
{
    public override int aa(int a)
    {
       // 何か処理する
    }
}

class1に public int aa(int a,string a) を定義しないといけない理由があるのでしょうか?

次のようにclass2でオーバーロード関数を実装するのが自然に思えます。
```cs
abstract class class1
{
    abstract public int aa(int a);
}

class Class2 : class1
{
    public override int aa(int a)
    {
       // 何か処理する
    }

    public int aa(int a,string a)
    {
       // ここだけオーバーロード
    }
} 

class Class3 : class1
{
    public override int aa(int a)
    {
       // 何か処理する
    }
}
```
class1に public int aa(int a,string a) を定義しないといけない理由があるのでしょうか?