定义一个抽象类作为父类,包含两个属性和两个方法。定义两个子类,每个子类都包含1个属性和2个方法,每个子类的方法中必须包含至少一个方法是重写父类的方法。然后再创建一个新的类,在这个新类中创建实例并调用方
时间: 2024-10-11 08:03:02 浏览: 34
在面向对象编程中,首先你需要定义一个抽象类。例如,我们有一个名为`Shape`的抽象类,它有两个通用的属性如`color`和`size`,以及两个抽象方法`getArea()`和`getPerimeter()`:
```java
abstract class Shape {
String color;
double size;
// 抽象方法
abstract double getArea();
abstract double getPerimeter();
// 具体实现
public void printProperties() {
System.out.println("Color: " + color);
System.out.println("Size: " + size);
}
}
```
接下来,我们有两个具体的子类`Circle`和`Rectangle`,它们继承自`Shape`,每个子类都有自己的属性和特定的方法,并重写了`getArea()`和`getPerimeter()`方法:
```java
class Circle extends Shape {
double radius;
@Override
double getArea() {
return Math.PI * radius * radius;
}
@Override
double getPerimeter() {
return 2 * Math.PI * radius;
}
}
class Rectangle extends Shape {
double length;
double width;
@Override
double getArea() {
return length * width;
}
@Override
double getPerimeter() {
return 2 * (length + width);
}
}
```
现在,我们可以创建一个新的类`ShapeDemo`,在这个类中,我们可以创建`Circle`或`Rectangle`类型的对象并调用它们的方法:
```java
public class ShapeDemo {
public static void main(String[] args) {
Shape circle = new Circle();
circle.color = "Red";
circle.radius = 5;
circle.printProperties(); // 输出圆的颜色和大小
System.out.println("Circle Area: " + circle.getArea());
System.out.println("Circle Perimeter: " + circle.getPerimeter());
Shape rectangle = new Rectangle();
rectangle.color = "Blue";
rectangle.length = 10;
rectangle.width = 7;
rectangle.printProperties(); // 输出矩形的颜色和大小
System.out.println("Rectangle Area: " + rectangle.getArea());
System.out.println("Rectangle Perimeter: " + rectangle.getPerimeter());
}
}
```
阅读全文