黑马程序员技术交流社区
标题:
关于抽象方法的怎么编译不用过
[打印本页]
作者:
lyg2013
时间:
2013-4-12 21:18
标题:
关于抽象方法的怎么编译不用过
本帖最后由 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处显示错误。
作者:
张洪慊
时间:
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