次のクラス構造を想像してみましょう。
class A{
public double X;
public double Y;
public A(double x, double y){
X=x; Y=y;
};
public A MiddlePoint(A[] a){
A resultPnt = new A(0,0);
for (int i = 0; i < a.Length; i++){
resultPnt.X += a[i].X;
resultPnt.Y += a[i].Y;
}
resultPnt.X = (this.X + resultPnt.X)/(a.Length + 1);
resultPnt.Y = (this.Y + resultPnt.Y)/(a.Length + 1);
}
}
class B:A{}
このような方法を使用するのは安全ですか:
B b = new B();
B[] arr = new B[2];
b.MiddlePoint(arr);
? そうでない場合、クラス B でオーバーロードする以外に、このメソッドを安全に呼び出すにはどうすればよいですか? 継承されたすべてのクラスでこのメソッドを毎回オーバーロードするのは便利ではありません。
PS 安全性とは、いかなる場合でも例外をスローしないことを意味します。