QA@IT
«回答へ戻る

回答を投稿

オブジェクト指向では、子が親よりシンプルになるということは許されません。子は親が持っている属性をかならず引き継ぐべきであり、親が持っているものを子が隠蔽することはできません。
したがって、Class3 が class1 を継承している時点で、class1 で抽象的に定義されたメソッドはかならず Class3 も持たないといけません。Class3 で aa(int a,string a) を実装するか、あるいは Class3 を abstract のままにするかのいずれかしか選択肢はありません。

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

これが、オブジェクト指向とは別のところから出てきた要求であり、オブジェクト指向の枠組みとは合わないのだろうと推測します。

オブジェクト指向では、子が親よりシンプルになるということは許されません。子は親が持っている属性をかならず引き継ぐべきであり、親が持っているものを子が隠蔽することはできません。
したがって、Class3 が class1 を継承している時点で、class1 で抽象的に定義されたメソッドはかならず Class3 も持たないといけません。Class3 で aa(int a,string a) を実装するか、あるいは Class3 を abstract のままにするかのいずれかしか選択肢はありません。

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

これが、オブジェクト指向とは別のところから出てきた要求であり、オブジェクト指向の枠組みとは合わないのだろうと推測します。