繁体   English   中英

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

[英]How can i return a value from an overridden method in the superclass AND the method in the subclass?

当我键入简单的代码来查找边界和矩形以演示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));


}

}

我不知道您要做什么,但是我将再解释一些我在想您的问题。

我认为您想计算不同多边形的周长和面积,所以最好的方法是创建一个类似Interface的接口。

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”,以便每个多边形都知道如何计算其面积。

希望对您有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM