定义一个抽象类Shape代表一个形状类,一个计算形状的面积的抽象方法,一个计算形状的周长的抽象方法。

定义一个抽象类Shape代表一个形状类,具有一个计算形状的面积的抽象方法,一个具有计算形状的周长的抽象方法。定义一个Shape类的子类Circle类表示一个圆,,此类具有一个表示半径的成员变量,实现这个类,定义一个单独的类测试此类。定义一个Shape类的子类Retangle类表示一个矩形,,此类具有表示高和宽的成员变量,实现这个类,定义一个单独的类测试此类

1、抽象类是不能实例化、只能被继承的一种类,是一种特殊的类,在ActionScript3.0中有许多抽象类,如下图所示的两个类都是抽象类。

2、如果对抽象类进行实例化,会引发ArgumentError异常,如下图所示。

3、在ActionScript3.0中不能定义抽象类和抽象方法,只能通过模拟来实现。新建一个ExampleClass类文件,保存在固定的文件夹中。

4、在类文件中,定义包头和类名,如下图所示。

5、接着,定义构造函数,修饰符为public。

6、在构造函数中使用throw语句,这样构造函数就不能被调用,也不能被实例化了。一个抽象类就成功定义了。

7、定义抽象方法:接着,定义一个用protected修饰符修饰的函数printf。

8、在函数中同样使用throw语句,这样方法就不能被调用了,一个抽象方法被成功创建了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-15
abstract class Shape {
public abstract double area();// 面积

public abstract double perimeter();// 周长
}

class Circle extends Shape {
private double r;

public Circle(double r) {
this.r = r;
}

public double area() {
return Math.PI * r * r;
}

@Override
public double perimeter() {
return 2 * Math.PI * r;
}
}

class Retangle extends Shape {
private double height, width;

public Retangle(double height, double width) {
this.height = height;
this.width = width;
}

@Override
public double area() {
return this.height * width;
}

@Override
public double perimeter() {
return 2 * (this.height + this.width);
}
}

public class Test {
public static void main(String[] args) {
Shape shape1 = new Circle(3.0);
System.out.println(shape1.area());
System.out.println(shape1.perimeter());
Shape shape2 = new Retangle(4, 7.3);
System.out.println(shape2.area());
System.out.println(shape2.perimeter());
}
}本回答被提问者采纳
相似回答