用java继承的思想求梯形的面积,要求输入上底,下底,高。求解答!!!!最好能讲解一下继承的思想。。。
发布网友
发布时间:2022-05-20 20:19
我来回答
共1个回答
热心网友
时间:2023-11-22 13:09
你先看看 梯形和圆有圆有什么公共特征
没错他们都是图形。。
那图形是什么呢 他可以代表 正方形 长方形 不规则多边形
那图形就是抽象的一个东西
所以你写一个抽象类 类名是图形
再写两个类 梯形 和 圆 去继承 图形类
那这个继承有什么意义呢
思考:作为图形有什么公有的特征?
答:可以求周长 面积等等
所以你可以在图形类再写一个抽象方法 求面积。
然后梯形和圆 再重写这个方法。
不过梯形要计算的参数 上底 下底 和高
而圆只需要半径
那这些又是什么呢,没错 这些就是他们自己特有的属性。
好的 , 解释就是这样 ,代码等下附上
---------------------------------------------------
文件名:Test.java
//图形
abstract class TuXing{
//获取面积
public abstract double getArea();
}
//梯形
class TiXing extends TuXing{
private double sd;//上底
private double xd;//下底
private double g;//高
public TiXing(double sd, double xd, double g) {
this.sd = sd;
this.xd = xd;
this.g = g;
}
@Override
public double getArea() {
return (sd + xd) * g / 2;
}
}
//圆
class Yuan extends TuXing{
private double bj;//半径
public Yuan(double bj) {
this.bj = bj;
}
@Override
public double getArea() {
return Math.PI * bj * bj;
}
}
public class Test {
public static void main(String args[]) {
TiXing tx = new TiXing(2,6,10);
Yuan y = new Yuan(3);
System.out.println("梯形面积: " + tx.getArea());
System.out.println("圆的面积: " + y.getArea());
}
}
追问@Override是什么意思啊?
追答是重写的一个标签 不加也可以 加了必须是继承的函数 否则编译器会报错