黑马程序员技术交流社区

标题: 多态有什么实际用处?求解答 [打印本页]

作者: WilliCicci    时间: 2015-7-18 00:38
标题: 多态有什么实际用处?求解答
class Animal{
        public void eat(){
                System.out.println("吃");
        }
        public void drink(){
                System.out.println("喝");
        }
}
class Dog extends Animal {
        public void eat(){
                System.out.println("吃骨头");
        }
        public void drink(){
                System.out.println("狗喝");
        }
}
class Cat extends Animal {
        public void eat(){
                System.out.println("吃鱼");
        }
        public void drink(){
                System.out.println("猫喝");
        }       
}

class AnimalTools{
        private AnimalTools(){}
        public static void printAnimal(Animal a){
                a.eat();
                a.drink();
        }
}
class  AnimalTest09 {
        public static void main(String[] args) {
                Dog d = new Dog();
                Dog d2 = new Dog();
                Dog d3 = new Dog();

                AnimalTools.printAnimal(d);
                AnimalTools.printAnimal(d2);
                AnimalTools.printAnimal(d3);
        }
}
作者: 张亚昆    时间: 2015-7-18 00:39
这是什么东西,你要问什么呢
作者: 以梦为码    时间: 2015-7-18 10:49
多态,允许子类类型对象的引用,赋值给父类类型的引用。
作者: T-l-H、小生    时间: 2015-7-18 11:09
关于多态的好处也就那么一句话:多态的出现大大提高了程序的扩展性,弊端就是提高了扩展性的同时,只能使用父类的引用访问父类中的成员。
比如:其实我们生活中有很多地方也是用到多态的,比如生活的角色扮演,是儿子的话,看到爸爸应该叫爸爸,是学生看到老师,应该叫老师,我们在身份时时刻刻在进行不断的变化,这就是多态。
作者: 18671183990    时间: 2015-7-18 15:30
我也同求
作者: zhwfa1991    时间: 2015-7-18 15:42
有时候传值的时候我们不确定传哪个对象,但是形参是父类的引用就无所谓了,只要是它的子类对象都可以接收
作者: 360638403    时间: 2015-7-18 18:39
好像也很少用到多态把
作者: 白马程序猿    时间: 2015-7-18 19:15
同求答案,不知道什么时候用合适
作者: 朝花夕拾7    时间: 2015-7-18 19:20
提高扩展性
作者: jk7130866    时间: 2015-7-18 20:21
运行时多态 ,让你可以定义一个父类应用它的任何子类,根据他引用的子类类型,调用子类重写的方法
作者: jk7130866    时间: 2015-7-18 20:25
就你举得例子来说, AnimalTools.printAnimal(Animal a).可以传入dog或cat对象,如果传入是dog对象就是dog类的eat方法 如果传入cat对象就调用cat类的eat方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2