黑马程序员技术交流社区
标题:
怎么把Square和Circle的getArea用进我编写的程序里
[打印本页]
作者:
许瑞航老师
时间:
2012-7-13 17:33
标题:
怎么把Square和Circle的getArea用进我编写的程序里
先说明,我代码有问题,不是偷懒。
这个是我有错误的代码,我不理解的就是怎么把Square和Circle的getArea用进去啊。
interface Shape{
public double getArea();
}
class Square implements Shape{
double sideLen;
Square(double sideLen){
this.sideLen=sideLen;
}
public double getArea(){
return sideLen*sideLen;
}
}
class Circle implements Shape{
int radius;
public double getArea(){
return Math.PI*radius*radius;
}
}
public class TestGeneric<Shape>{
Shape shape;
TestGeneric(Shape shape){
this.shape=shape;
}
public double calcArea(){
return shape.getArea();
}
public static void main(String[]args){
Square sq=new Square(3.3);
TestGeneric<Square> a=new TestGeneric<Square>(sq);
a.calcArea();
}
}
作者:
陆强强
时间:
2012-7-13 17:50
class TestGeneric{
public double calcArea(Shape shape){//这里传入接口变量
return shape.getArea();//调用面积函数
}
public static void main(String[]args){
Square sq=new Square(3.3);
TestGeneric a=new TestGeneric();
System.out.println(a.calcArea(sq));//return 的是double值,用打印语句才能看到效果
}
}
作者:
陆强强
时间:
2012-7-13 17:52
不要把shape放在构造函数里初始化,那样你再求圆的面积又要new一个TestGeneric对象
作者:
许瑞航老师
时间:
2012-7-13 23:35
陆强强 发表于 2012-7-13 17:52
不要把shape放在构造函数里初始化,那样你再求圆的面积又要new一个TestGeneric对象
...
嗯 试过了 您说的果然方便
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2