多态与对象转型

 Copy自OneNote笔记,未整理排版

多态

 多态表示不同的对象调用一个方法时可能有不同的状态。

比如说“人”这个类,学生和教师他们都继承自“人”这个类,这个类有一个“休息”方法

但是他们在调用“休息”这个方法的时候可能是多种状态,比如学生累了可能在去游戏,大人累了可能去睡觉。

 

 多态的要点


代码

 

public class test{

    public static void main(String args[]){

        Dog dog = new Dog();

        Test(dog);

        Animal cat = new Cat();     //父类引用指向子类对象

        cat.eat();  //最后输出  猫吃鱼

    }

    //狗类新构造的对象dog作为参数传递过来,使Animal类型的引用指向它

    static void Test(Animal animal){ 

        //调用eat方法

        animal.eat();   //输出的是狗吃骨头

    }

}

class Animal{

    public void eat(){

        System.out.println("吃饭");

    }

}

class Dog extends Animal{

    @Override

    public void eat(){

        System.out.println("狗吃骨头");

    }

}

class Cat extends Animal{

    @Override

    public void eat(){

        System.out.println("猫吃鱼");

    }

}

对象转型

  Animal cat = new Cat();  这个语句实际上完成了自动转型,把Cat类型的对象cat转成了Animal类型。当然也可以向下转型:Cat cat2 = (Cat) cat;  这个是强制类型转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值