QA@IT
«質問へ戻る

質問を投稿

C# abstract、 orverrid、 orverload の扱い方について教えてください

お世話になっています。

実装のやり方で教えていただきたいところがあります。

ある抽象クラス(class1)があります。
・class1
abstract class class1
{

abstract public int aa(int a);
abstract public int aa(int a,string a);
}

抽象クラスを継承している、class2,class3
があります。class2の方は、aa(int ),オーバーロードのaa(int a,string a)
のメソッドを使用したく、二つのメソッドに対してclass2内でoverride
すればOKかと思います。しかしclass3の方は、aa(int )だけ実装したい場合
は、どのようにすればよいのでしょうか?(ビルドエラーとなる)
ともに実装させ、class3で
は、使用しないようにというようなことでしょうか?
よい方法はありませんでしょうか? 仕様でしょうか?

なぜそうしたいのかといいますと、修正するところがclass1,class2
(class2でoverloadの方を使用したい)
だけですむというところを目指しています。

.class2
class Class2 : class1
{
public override int aa(int a)
{
throw new NotImplementedException();
}
public override int aa(int a,string a)
{
throw new NotImplementedException();
}
}
.class3
class Class3 : class1
{
public override int aa(int a)
{
throw new NotImplementedException();
}
}

ご教授願います。

お世話になっています。

実装のやり方で教えていただきたいところがあります。

ある抽象クラス(class1)があります。
・class1
 abstract class class1
 {      
    abstract public int aa(int a);
    abstract public int aa(int a,string a);
 }

抽象クラスを継承している、class2,class3
があります。class2の方は、aa(int ),オーバーロードのaa(int a,string a)
のメソッドを使用したく、二つのメソッドに対してclass2内でoverride
すればOKかと思います。しかしclass3の方は、aa(int )だけ実装したい場合
は、どのようにすればよいのでしょうか?(ビルドエラーとなる)
ともに実装させ、class3で
は、使用しないようにというようなことでしょうか?
よい方法はありませんでしょうか? 仕様でしょうか?

なぜそうしたいのかといいますと、修正するところがclass1,class2
(class2でoverloadの方を使用したい)
だけですむというところを目指しています。

.class2
class Class2 : class1
{
  public override int aa(int a)
  {
     throw new NotImplementedException();
  }
  public override int aa(int a,string a)
  {
     throw new NotImplementedException();
  }
} 
.class3
class Class3 : class1
{
  public override int aa(int a)
  {
     throw new NotImplementedException();
  }
}

ご教授願います。