长期的物种进化使两栖动物既能活跃在陆地上,又能游动于水中。使用抽象类建立一个动物基类Animal,属性包含体重weight和性别sex,并具有移动能力Move()以及属性展示PrintInfo()。
由动物基类派生陆生动物类TerAnimal,增加奔跑速度属性runSpeed;派生水生动物类AquAnimal,增加游泳速度swimSpeed,并分别实现基类中的移动过程(陆生动物的Move函数打印“陆上跑”,水生动物的Move()函数打印“水中游”)和属性展示(分别打印“体重:”、“性别:”、“速度:”)。
由陆生、水生两个类继续派生而来的两栖动物类AmpAnimal,继承了陆生动物和水生动物的属性和方法(继承时均保留1份),且移动能力也随之发生变化(Move()函数打印“水陆两栖”)。
请正确实现上述类的定义和继承关系,并分别创建陆生动物对象rabbit(体重500,性别公,速度100),水生动物对象fish(体重10,性别母,速度50),两栖动物对象turtle(体重30,性别公,速度1)。然后定义一个通用函数void GetAnimalInfo(Animal* animal),分别传入3个动物对象,在该函数中使用动态多态的方式分别调用animal指向对象的移动方法和属性展示方法,打印对应内容。
输出样例:
陆上跑
体重:500 性别:公 速度:100
水中游
体重:10 性别:母 速度:50
水陆两栖
体重:30 性别:公 速度:1