前面案例5-1中宠物猫类和宠物狗类中,部分属性和方法是重复的。因此本案例的任务是对前面的案例进行优化,同时为它们各自定义一个玩耍方法play(),其中宠物猫的玩耍方式是滚球,宠物狗的玩耍方式则是吹泡泡。领养宠物后,可以执行的操作有查看宠物信息、给宠物喂食,以及和宠物玩游戏,如果宠物是猫则滚球,是狗则吹泡泡。
(1)从宠物猫类(Cat)和宠物狗类(Dog)中抽取出共同父类宠物类(Pet),把它们共同的属性和方法放到父类中,子类可以继承父类的属性和方法,同时也可以增加自己的属性和方法,从而解决代码的重复问题。
( 2 ) Pet 类 具 有 的 属 性 有 昵 称 ( name ) , 具 有 的 方 法 有 自 我 介 绍(introduce())、吃食(eat())。Cat类继承Pet类以上属性和方法的同时,还具有自 己 特 有 的 属 性 —— 品 种 ( strain ) , 以 及 特 有 的 方 法 —— 重 写 自 我 介 绍(introduce())和滚球(rollBall())。Dog类继承Pet类以上属性和方法的同时,还具有自己特有的属性——性别(sex),以及特有的方法——重写自我介绍(introduce())和吹泡泡(blowBubbles())。
(3)在宠物猫类Cat和宠物狗类Dog重写的自我介绍方法introduce()中,需要
调用父类Pet中的introduce()方法,可以通过super关键字实现。
1