A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© WilliCicci 中级黑马   /  2015-7-18 00:38  /  1080 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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);
        }
}

10 个回复

倒序浏览
这是什么东西,你要问什么呢
回复 使用道具 举报
多态,允许子类类型对象的引用,赋值给父类类型的引用。
回复 使用道具 举报
关于多态的好处也就那么一句话:多态的出现大大提高了程序的扩展性,弊端就是提高了扩展性的同时,只能使用父类的引用访问父类中的成员。
比如:其实我们生活中有很多地方也是用到多态的,比如生活的角色扮演,是儿子的话,看到爸爸应该叫爸爸,是学生看到老师,应该叫老师,我们在身份时时刻刻在进行不断的变化,这就是多态。
回复 使用道具 举报 1 0
我也同求
回复 使用道具 举报
有时候传值的时候我们不确定传哪个对象,但是形参是父类的引用就无所谓了,只要是它的子类对象都可以接收
回复 使用道具 举报
好像也很少用到多态把
回复 使用道具 举报
同求答案,不知道什么时候用合适
回复 使用道具 举报
提高扩展性
回复 使用道具 举报
运行时多态 ,让你可以定义一个父类应用它的任何子类,根据他引用的子类类型,调用子类重写的方法
回复 使用道具 举报
就你举得例子来说, AnimalTools.printAnimal(Animal a).可以传入dog或cat对象,如果传入是dog对象就是dog类的eat方法 如果传入cat对象就调用cat类的eat方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马