当前位置: 代码迷 >> J2SE >> 大家帮忙看看小弟我写的这个算多态么
  详细解决方案

大家帮忙看看小弟我写的这个算多态么

热度:139   发布时间:2016-04-24 12:47:10.0
大家帮忙看看我写的这个算多态么
又看了下多态对多态好像有了些感觉 所以写个程序 大家看下 这应该算是多态吧? 但是好像 对于多态的特点好像不是能很好的体现,大家说下应该如何完善这个代码段才能更加体现多态????
Java code
class Shape{    void style(){            }}class Circle extends Shape{    void style(){        System.out.println("Circle's Style");    }}class Square extends Shape{    void style(){        System.out.println("Square's Style");    }}class Person{    private String name;     Person(String name,Shape i){         i.style();     }}public class TestShape {public static void main(String[] args) {    Circle c = new Circle();    Square s = new Square();    Person p1 = new Person("name1",c);    Person p2 = new Person("name2",s);                    }}


------解决方案--------------------
理论上应该算 不过楼主
private String name;
Person(String name,Shape i){
i.style();
}
是不是漏了给name初始化
------解决方案--------------------
小菜回答: 楼主我觉得是这样的。我也刚刚在学多态只说点简单的。举个例子。
 假如动物都有运动这个方法 。但是 动物的子类中 人 ,鸟 鱼他们的运动是不一样的。所以我们就想把这个运动的方法抽象出来 抽象成一个接口 叫运动。 而让人 鸟 鱼 这几个类分别去实现这个接口 定义自己不同的运动方法。 然后定义一个 接口的引用指向 新生成的 动物对象 以后当你用接口的引用去调用 这个运动方法时 如果这个接口指向的是个人 就调用人的运动方法。如果指向的是个鸟 就调用鸟类特有的运动的方法。 这就是所谓的接口的多态。

小菜只懂这些 期待高手补充
------解决方案--------------------
Shape s = new Circle();
...
s = new Square();
...
------解决方案--------------------
Java code
class Shape{    void style(){            }}class Circle extends Shape{    void style(){        System.out.println("Circle's Style");    }}class Square extends Shape{    void style(){        System.out.println("Square's Style");    }}public class TestShape {  public static void main(String[] args) {     Shape sh;     Circle c = new Circle();     Square s = new Square();     sh=c;     sh.style();     sh=s;     sh.style();  }}
  相关解决方案