父类引用指向指向子类对象有啥作用呢?作何解释?

解决方案 »

  1.   

    做一个画图程序的时候,你可以画方,画圆,画线
    按照OOP的思想方,圆,线都属于Shape类型
    那么应该有
    class Shape{}
    class Fang extends Shape{}
    class Yuan extends Shape{}
    class Xian extends Shape{}然后把他们画出来的操作方法在某个类里,这个方法接收一个图形,我不管你是什么实际的形状,你只要给我一个图形,我就可以把它画出来,看这个方法的定义
    public void draw();那里面的参数应该怎么给,参数定义Fang f还是Yuan y或是Xian x,不管你定义成什么都只能接收一个实际的形状,如果你的参数定义成Shape s,那么就可以接受继承Shape的所有实际形状
    public void draw(Shape s);
    看出父类引用子类的好处了吗
      

  2.   

    例如:
    你可能会写如下2个方法
    feed(Cat cat){    }
    feed(Dog dog){    }
    如果Cat、Dog都是Animal的子类,那你就可以写成
    feed(Animal animal){    }Animal a1=new Dog();    //父类引用指向子类对象
    Animal a2=new Cat();
    feed(a1);
    feed(a2);有人说这是面向接口编程,可以降低程序的耦合性,即调用者不必关心调用的是哪个对象,只需要针对接口编程就可以了,被调用者对于调用者是完全透明的。让你更关注父类能做什么,而不去关心子类是具体怎么做的,你可以随时替换一个子类,也就是随时替换一个具体实现,而不用修改其他.
      

  3.   

    en xue xi yi xia le