如何从超类中的重写方法和子类中的方法返回值?

时间:2016-04-12 16:57:11

标签: java method-overriding

当我输入简单的代码来查找周边和矩形来演示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 个答案:

答案 0 :(得分:0)

我不知道你想做什么,但我会再解释一下我在考虑你的问题。

我认为你想要计算不同多边形的周长和面积,所以最好的方法是创建一个接口,就像这样。

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

然后你应该根据你的多边形实现你的界面,例如:

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
    }
}

因此,您必须使用@Override注释为您的多边形实现接口方法“calculateArea”,因此每个多边形都知道如何计算其面积。

希望对你有所帮助。