编写一个应用抽象类的程序要求设计抽象类设计继承抽象类并实现抽象类中抽象方法的子类
时间: 2023-12-06 15:34:54 浏览: 85
为了应用抽象类,我们可以设计一个图形类和一个动物类作为例子。首先,我们需要设计一个抽象类图形类,其中包含有至少两个抽象方法求周长和求面积。然后,我们可以定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法。代码如下:
```java
// 抽象类图形类
abstract class Shape {
// 抽象方法求周长
public abstract double getPerimeter();
// 抽象方法求面积
public abstract double getArea();
}
// 圆形类
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
// 实现求周长方法
public double getPerimeter() {
return 2 * Math.PI * radius;
}
// 实现求面积方法
public double getArea() {
return Math.PI * radius * radius;
}
}
// 长方形类
class Rectangle extends Shape {
private double length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
// 实现求周长方法
public double getPerimeter() {
return 2 * (length + width);
}
// 实现求面积方法
public double getArea() {
return length * width;
}
}
// 正方形类
class Square extends Rectangle {
public Square(double side) {
super(side, side);
}
}
// 三角形类
class Triangle extends Shape {
private double a;
private double b;
private double c;
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
// 实现求周长方法
public double getPerimeter() {
return a + b + c;
}
// 实现求面积方法
public double getArea() {
double p = (a + b + c) / 2;
return Math.sqrt(p * (p - a) * (p - b) * (p - c));
}
}
// 抽象类动物类
abstract class Animal {
// 抽象方法捕食
public abstract void hunt();
// 非抽象方法进食
public void eat() {
hunt();
System.out.println("进食中...");
}
}
// 狮子类
class Lion extends Animal {
// 实现捕食方法
public void hunt() {
System.out.println("狮子正在捕猎...");
}
}
// 测试类
public class Test {
public static void main(String[] args) {
// 测试图形类
Shape circle = new Circle(5);
System.out.println("圆形的周长为:" + circle.getPerimeter());
System.out.println("圆形的面积为:" + circle.getArea());
Shape rectangle = new Rectangle(3, 4);
System.out.println("长方形的周长为:" + rectangle.getPerimeter());
System.out.println("长方形的面积为:" + rectangle.getArea());
Shape square = new Square(5);
System.out.println("正方形的周长为:" + square.getPerimeter());
System.out.println("正方形的面积为:" + square.getArea());
Shape triangle = new Triangle(3, 4, 5);
System.out.println("三角形的周长为:" + triangle.getPerimeter());
System.out.println("三角形的面积为:" + triangle.getArea());
// 测试动物类
Animal lion = new Lion();
lion.eat();
}
}
```
阅读全文