package suda.alex.test;
import java.applet.Applet;
abstract class Graphic {
public int x, y;// 画图的坐标
public int width, height;// 图形的宽和高
public Graphic(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
abstract double getArea();
abstract double getPerimeter();
}
class Square extends Graphic {
public Square(int x, int y, int width, int height) {
super(x, y, width, height);
}
@Override
double getArea() {
return width * height;
}
@Override
double getPerimeter() {
return (width + height) * 2;
}
}
class Triangle extends Graphic {
public double c;
public Triangle(int x, int y, int width, int height) {
super(x, y, width, height);
c = Math.sqrt(width * width + height * height);
}
@Override
double getArea() {
return 0.5 * width * height;
}
@Override
double getPerimeter() {
return width + height + c;
}
}
class Circle extends Graphic {
public double r;
public Circle(int x, int y, int width, int height) {
super(x, y, width, height);
r = (double) width / 2.0;
}
@Override
double getArea() {
return Math.PI * r * r;
}
@Override
double getPerimeter() {
return 2 * Math.PI * r;
}
}
public class Graphics extends Applet {
Square square = new Square(5, 15, 25, 25);
Triangle triangle = new Triangle(5, 50, 8, 4);
Circle circle = new Circle(5, 90, 25, 25);
public void paint(java.awt.Graphics g) {
g.drawRect(square.x, square.y, square.width, square.height);
g.drawString("Square area:" + square.getArea(), 50, 35);
g.drawString("Square Perimeter:" + square.getPerimeter(), 50, 55);
g.drawOval(circle.x, circle.y, circle.width, circle.height);
g.drawString("circle Area:" + circle.getArea(), 50, 95);
}
}
Java抽象类的一个例子
最新推荐文章于 2024-06-26 20:29:53 发布