黑马程序员技术交流社区

标题: 关于抽象方法的怎么编译不用过 [打印本页]

作者: lyg2013    时间: 2013-4-12 21:18
标题: 关于抽象方法的怎么编译不用过
本帖最后由 lyg2013 于 2013-4-13 01:50 编辑
  1. public abstract class Shape{
  2.                 protected Point location;
  3.                 /*
  4.                  * 抽象方法,图像可以计算面积
  5.                  * 具体计算过程不清楚。*/
  6.                 public abstract double area();
  7.                 public boolean contains (Point p){
  8.                         return contains(p.x,p.y);
  9.                 }
  10.                 public abstract boolean contains(int x,int y);
  11.         }
  12.         /**
  13.          *圆是具体类 ,继承图形必须实现图形中的所有抽象方法
  14.          *图形的抽象方法是子类的约定,约定子类具有一致的公共外观
  15.          *(一定包含area()和contains(int x,int y)方法)
  16.          * @param args
  17.          */
  18.         public class Circle extends Shape{
  19.                 private int r;
  20.                 public Circle(int x,int y,int r){
  21.                         location = new Point(x,y);
  22.                         this.r = r;
  23.                 }
  24.                 //实现shape中约定的方法
  25.                 public double area() {
  26.                         // TODO Auto-generated method stub
  27.                         return Math.PI*r*r;
  28.                 }
  29.                 //实现shape中约定的方法
  30.                 public boolean contains(int x, int y) {
  31.                         return this.location.distance(x,y)<=r;
  32.                 }
  33.    }
  34.         public class ShapeDemo {
  35.               public static void main(String[] args) {
  36.                //代词可以是抽象的,东西必须是具体的
  37.                 Shape s = new Circle(5,6,4);
  38.                         Point p = new Point(7,8);
  39.                         System.out.println(s.area());
  40.                         System.out.println(s.contains(p));
  41.                 }

  42.         }
复制代码
怎么编译通不过呢?Circle 和Shape处显示错误。


作者: 张洪慊    时间: 2013-4-12 21:34
错误:
1.一个java源文件中只能有一个public修饰的类
2.这里用到Point类,如果不想写导入的话->在所有Point前面加上 java.awt.Point
  当让可以在程序开始处 加上 import java.awt.Point;
作者: 刘策    时间: 2013-4-12 22:12
楼上正解,编译可以通过了。
作者: lyg2013    时间: 2013-4-12 23:07
张洪慊 发表于 2013-4-12 21:34
错误:
1.一个java源文件中只能有一个public修饰的类
2.这里用到Point类,如果不想写导入的话->在所有Point前 ...

            谢了
作者: 打工人    时间: 2013-4-12 23:10

如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2