多态

本文通过三个多态性练习深入理解Java的多态特性。首先创建Animal类及其子类Cat、Dog、Eagle,展示如何重写eat()方法并使用多态调用。然后在第二个练习中,Animal类及其子类Dog2、Cat2、Bird2重写sing()方法,利用instanceof和类型转换实现特定方法的调用。最后,通过模拟天天酷跑游戏,创建Pet类和Hero类,展示Pet子类如何根据Hero对象的宠物类型执行不同的follow()方法。
摘要由CSDN通过智能技术生成

【练习题】1.多态练习

   1.定义一个Animal父类,方法有eat();

   2.定义三个子类;

          Cat,Dog,Eagle;

          每个子类增加新的方法,并重写eat();

   3.利用多态性

          定义一个Animal类型的变量a,并将不同子类的实例赋给a;

          调用eat();观察结果后,并理解多态

   4.思考,如果a的引用指向一个Cat,如何调用Cat的新增方法;

【练习题】2.多态练习

定义一个Animal类,方法有sing方法,定义这个类的三个子类(Dog,Cat,Bird),分别重写这个方法。利用多态,定义一个Animal类型的对象,Animal a;分别引用三个子类的对象,调用sing方法。为每个子类,增加额外的方法。通过此例,练习upCast,downCast,及instanceof操作符。

【练习题】3.多态练习

模拟天天酷跑游戏;

定义一个(宠物)Pet类,类中有属性name,方法是follow(跟随);再定义三个子类,Cat,Dog,Eagle,分别重写follow方法;

   再定义一个Hero类,这个类中有两个属性name和Pet类型的pet,一个方法run(),再定义两个构造方法,Hero(String name,);Hero(String name,Pet pet);

 run()方法的代码是Hero跑,并且他的宠物也跟着跑;

编写测试类来操作Hero

 

1.

package 多态;
class Animal
{
    void eat() {
        
        System.out.println("我在吃东西!");
    }
}
class Cat extends Animal
{
    @Override
    void eat() {
        // TODO Auto-generated method stub
        
  

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值