多态

来源:互联网 发布:淘宝金丝绒裙子 编辑:程序博客网 时间:2024/06/06 04:35
class Cat extends Animal{    @Override    void eat() {        System.out.println("cat eat!");    }    void catch_mouse(){        System.out.println("catch mouse!");    }}class Dog extends Animal{    @Override    void eat() {        System.out.println("Dog eat!");    }}abstract class Animal{    abstract void eat();}

调用代码:

        Animal a = new Cat();        a.eat();        //自动类型提升,猫对象提升到了动物类型,但是猫的特定功能无法访问         //作用就是限制了对特有功能的访问        //专业来说就是 向上转型        //如果我还是想调用猫的特有功能怎么办?这时我们需要向下转型        Cat c = (Cat)a;//向下转型        c.catch_mouse();
控制台输出:

cat eat!
catch mouse!

多态即:父类对象的引用可以指向多个子类对象,方便扩展代码

弊端:限制了子类对调用自己的特有的方法

原创粉丝点击