interface Shape {
public double area();
}
class Circle implements Shape {
private double radius;
public Circle(double r){radius = r;}
public double area(){return Math.PI*radius*radius;}
}
class Square implements Shape {
private int wid;
public Square(int w){wid = w;}
public double area(){return wid *wid;}
}
public class Poly{
public static void main(String args[]){
Shape[] s = new Shape[2];
s[0] = new Circle(10);
s[1] = new Square(10);
System.out.println(s[0].getClass().getName());
System.out.println(s[1].getClass().getName());
}
}
为了理解多态性的概念,我找到了以下帖子 ( https://stackoverflow.com/a/4605772/112500 ),但我注意到 Charlie 使用未实现的方法创建了 Shape 类。
从我的代码中可以看出,我将该类转换为一个接口,然后用它实例化一个匿名类,然后调用适当的方法。
有人可以告诉我我的解决方案是否合理吗?你会以不同的方式编写代码吗?为什么在等号两边使用一个接口会起到这样的作用?
谢谢。
凯特琳