上記のコード サンプルは、メソッドのオーバーライドの例です。これは、Java がランタイム ポリモーフィズムを実装する方法です。Java では、オーバーライドされたメソッドがスーパークラス参照を使用して呼び出された場合、Java は、変数の型ではなく、呼び出し時に参照されているオブジェクトの型に応じて、実行するメソッドのバージョンを決定します。検討
class Figure{
double dim1;
double dim2;
Figure(double dim1,double dim2){
this.dim1=dim1;
this.dim2=dim2;
}
double area(){
return 0;
}
}
class Rectangle extends Figure{
Rectangle(double dim1,double dim2){
super(dim1,dim2);
}
double area(){
double a;
a=dim1*dim2;
System.out.println("dimensions of rectangle are "+dim1+" "+dim2);
return a;
}
}
class Triangle extends Figure{
Triangle(double dim1,double dim2){
super(dim1,dim2);
}
double area(){
double a=(dim1*dim2)/2;
System.out.println("base & altitude of triangle are "+dim1+" "+dim2);
return a;
}
}
class test{
public static void main(String[] args){
Figure r;
Rectangle b=new Rectangle(10,10);
Triangle c=new Triangle(10,10);
r=b;
System.out.println("area of rectangle fig "+r.area());
r=c;
System.out.println("area of triangle fig "+r.area());
}
}
出力: 長方形の寸法は 10.0 10.0 長方形の面積 fig 100.0 三角形の底辺と高さは 10.0 10.0 三角形の面積 fig 50.0
第 2 四半期: いいえ。署名は唯一無二の意味。戻り型は署名の一部ではありません