Q20:创建一个抽象形状类,里面有两个抽象方法,计算面积,计算周长。 创建两个子类,分别为圆形和正方形,在子类中实现[重写]父类抽象方法。 测试类,创建子类对象,调用方法输出结果

it2025-03-06  23

抽象类不能直接被实例化,也就是Shape不能被实例化抽象类中可以有抽象方法,也可以有普通方法 public class TestShape { public static void main(String[] args) { // TODO Auto-generated method stub //实例化圆形子类对象 Circle circle = new Circle(); circle.setR(3); System.out.println("圆形:"); circle.getArea(); System.out.println(); //实例化长方形子类对象 Triangle triangle = new Triangle(); triangle.setLength(3); triangle.setWidth(4); System.out.println("长方形:"); triangle.getArea(); triangle.getLongth(); } } //抽象类 abstract class Shape { //抽象方法 -计算面积 public abstract void getArea(); //抽象方法 -计算周长 public abstract void getLongth(); } //圆形 class Circle extends Shape{ private double r; public double getR() { return r; } public void setR(double r) { this.r = r; } @Override public void getArea() { System.out.println("面积:" + 3.14*r*r); } @Override public void getLongth() { System.out.println("周长:" + 3.14*r*r); } } //长方形 class Triangle extends Shape{ private double length; private double width; public double getLength() { return length; } public void setLength(double length) { this.length = length; } public double getWidth() { return width; } public void setWidth(double width) { this.width = width; } @Override public void getArea() { System.out.println("面积:" + length*width); } public void getLongth() { System.out.println("周长:" + (length + width)*2); } }

最新回复(0)