2016-04-12 6 views
0

私は、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)); 


} 

} 
+1

あなたはできません。あなたがしたいことは意味をなさない。 'area'が' perimeter'を拡張するのはなぜですか?エリアは周長ではありません。 (また、クラス名がPascal-caseであるようにすることもできます: 'Area'、' Perimeter'、 'OverrideShapes') –

+0

うん。面積は、おそらく周囲を伸ばすことはできない。プログラムはメソッドのオーバーライドを実証するだけでした。しかし、私は解決策を見つけました。ありがとう! –

答えて

0

あなたは何をしようとしているのかわかりませんが、私はあなたの質問について何か考えています。

多角形の周囲と面積を計算したいと思うので、このようなインターフェイスを作成するのが最善の方法です。

public Interface Calculate { 
    public int calculateArea(int length, int width); 
} 

次にあなたがたとえば、あなたのポリゴンを応じて、多くのCLASEで、あなたのインターフェイスを実装するべきである:@Overrideアノテーションを使用し

public class Square implements Calculate { 

    @Override 
    public int calculateArea(int length, int width){ 
     return length*width; //Because this is the way you calculate square areas 
    } 
} 

ですから、あなたのポリゴンのためのあなたのインターフェイスメソッドを実装する必要があり、「calculateArea」したがって、各ポリゴンはその領域をどのように計算するかを知っています。

あなたのお役に立てば幸いです。

+0

はい。これは動作します!ありがとうございました! –

関連する問題