3、(方法的覆盖)编写一个Java程序,在程序中定义一个水果类Fruit,再定义Fruit类的两个子类Apple类和Banana类,在子类中重写父类的 disp() 方法,设计一个程序,验证方法的覆盖效果; 4、(抽象类)编写一个Java程序,在程序中定义一个抽象类Shape,包含两个抽象方法,一个是计算面积 area() ,一个是显示面积 showArea(),再定义Shape类的两个子类 Rectangle 类和 Circle 类,设计一个程序,输出矩形和圆的面积;
时间: 2024-02-09 13:09:30 浏览: 60
3、方法的覆盖示例代码:
```java
public class Fruit {
public void disp() {
System.out.println("这是一个水果");
}
}
public class Apple extends Fruit {
@Override
public void disp() {
System.out.println("这是一个苹果");
}
}
public class Banana extends Fruit {
@Override
public void disp() {
System.out.println("这是一个香蕉");
}
}
public class Test {
public static void main(String[] args) {
Fruit fruit = new Fruit();
fruit.disp();
Fruit apple = new Apple();
apple.disp();
Fruit banana = new Banana();
banana.disp();
}
}
```
输出结果为:
```
这是一个水果
这是一个苹果
这是一个香蕉
```
说明子类重写了父类的 disp() 方法,可以覆盖父类的方法实现。
4、抽象类示例代码:
```java
public abstract class Shape {
public abstract double area();
public abstract void showArea();
}
public class Rectangle extends Shape {
private double length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
public double area() {
return length * width;
}
@Override
public void showArea() {
System.out.println("矩形的面积为:" + area());
}
}
public class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double area() {
return Math.PI * radius * radius;
}
@Override
public void showArea() {
System.out.println("圆的面积为:" + area());
}
}
public class Test {
public static void main(String[] args) {
Shape rectangle = new Rectangle(3, 4);
rectangle.showArea();
Shape circle = new Circle(5);
circle.showArea();
}
}
```
输出结果为:
```
矩形的面积为:12.0
圆的面积为:78.53981633974483
```
说明抽象类可以定义抽象方法,子类必须实现这些方法,同时抽象类也可以有实现方法。在设计程序时,抽象类可以起到规范和约束的作用。
阅读全文