私は、Javaでメソッドオーバーライドを実証するために、境界と矩形を見つけるために単純なコードを入力していたときに、この問題が発生していることに気付きました。同じサブクラスメソッドで領域(長さ*幅)を返すことはできますか?スーパークラスのオーバーライドされたメソッドとサブクラスのメソッドから値を返すにはどうすればよいですか?
package override;
class perimeter{
int length,breadth;
perimeter(){length = breadth = 0;}//default constructor
perimeter(int length, int breadth){
this.length = length;
this.breadth = breadth;
}
int show(int length, int breadth){
return 2*(length + breadth);
}
}
class area extends perimeter{
area(int length, int breadth){
super(length,breadth);
}
int show(int length, int breadth){
return super.show(length, breadth);
// how can i return this too? : return length * breadth;
}
}
public class overrideshapes {
public static void main(String args[]){
area shape1 = new area(5,10);
System.out.println(""+ shape1.show(shape1.length,shape1.breadth));
}
}
あなたはできません。あなたがしたいことは意味をなさない。 'area'が' perimeter'を拡張するのはなぜですか?エリアは周長ではありません。 (また、クラス名がPascal-caseであるようにすることもできます: 'Area'、' Perimeter'、 'OverrideShapes') –
うん。面積は、おそらく周囲を伸ばすことはできない。プログラムはメソッドのオーバーライドを実証するだけでした。しかし、私は解決策を見つけました。ありがとう! –