本帖最后由 lyg2013 于 2013-4-13 01:50 编辑
- public abstract class Shape{
- protected Point location;
- /*
- * 抽象方法,图像可以计算面积
- * 具体计算过程不清楚。*/
- public abstract double area();
- public boolean contains (Point p){
- return contains(p.x,p.y);
- }
- public abstract boolean contains(int x,int y);
- }
- /**
- *圆是具体类 ,继承图形必须实现图形中的所有抽象方法
- *图形的抽象方法是子类的约定,约定子类具有一致的公共外观
- *(一定包含area()和contains(int x,int y)方法)
- * @param args
- */
- public class Circle extends Shape{
- private int r;
- public Circle(int x,int y,int r){
- location = new Point(x,y);
- this.r = r;
- }
- //实现shape中约定的方法
- public double area() {
- // TODO Auto-generated method stub
- return Math.PI*r*r;
- }
- //实现shape中约定的方法
- public boolean contains(int x, int y) {
- return this.location.distance(x,y)<=r;
- }
- }
- public class ShapeDemo {
- public static void main(String[] args) {
- //代词可以是抽象的,东西必须是具体的
- Shape s = new Circle(5,6,4);
- Point p = new Point(7,8);
- System.out.println(s.area());
- System.out.println(s.contains(p));
- }
- }
复制代码 怎么编译通不过呢?Circle 和Shape处显示错误。
|
|