您的位置:首页 > 编程语言 > Java开发

Java抽象类的一个例子

2016-05-17 11:53 357 查看
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