这引用下我的作业(如果我亲爱的老师看到了这里请不要觉得我是抄的,这是您的学生自己写的)
子类RoundArea类通过覆盖父类中的抽象方法area()来求圆的面积,
另一个子类RectArea类通过覆盖父类中的抽象方法area()求长方形的面积。
package charpter3_2;
import java.util.Scanner;
public class ImpleArea {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入长方形的长");
double length = sc.nextDouble();
System.out.println("请输入长方形的宽");
double width = sc.nextDouble();
System.out.println("请输入圆形的半径");
double radius = sc.nextDouble();
Area rectarea = new RectArea(length, width);
Area roundarea = new RoundArea(radius);
System.out.println("长方形的面积: " + rectarea.area());
System.out.println("圆形的面积: " + roundarea.area());
}
}
abstract class Area { //定义一个抽象类Area
public abstract double area();
}
class RoundArea extends Area { //Area的子类RoundArea
double radius;
public RoundArea(double radius) { //Area的子类RectArea
this.radius = radius;
}
public double area() {
return Math.PI * Math.pow(radius, 2);
}
}
class RectArea extends Area { // 通过覆盖父类中的抽象方法area()求长方形的面积。
double length;
double width;
public RectArea(double length, double width) {
this.length = length;
this.width = width;
}
public double area() { // 通过覆盖父类中的抽象方法area()来求圆的面积
return length * width;
}
}
看了韩顺平的视频,我写一下我的心得体会:
1.abstract关键字在于设计,目的是为了让子类继承并实现抽象类(好比我作业上的抽象类Area,为了让RoundArea和RectArea继承,并实现抽象类Area)
2.抽象类和也可以有任意成员
3.抽象方法不能有主体,不能实现(比如我的 Area类中的public abstract double area() )
4.一个类继承了抽象类,就要实现抽象类的所有方法
5.一个抽象类继承了抽象类,可以不用实现这个抽象类的所有方法
6.抽象方法不能用private final static 修饰
学识浅薄,欢迎各位大牛指正