练习

您所在的位置:网站首页 宠物猫的所有品种名称 练习

练习

2024-07-16 13:29| 来源: 网络整理| 查看: 265

第1关:练习-Java继承和多态之综合练习 任务描述编程要求测试说明

任务描述

本关任务:按照动物、宠物、猫和蜘蛛的关系,通过编程实现各自的关系并声明自己的属性和方法。

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 中实现如下要求:

动物类 Animal为抽象类,具有两个属性:种类和腿条数,并有 eat() 和 walk() 的方法;宠物 Pet 为接口,有三个功能:setName()、getName() 和 play();蜘蛛类 Spider 继承动物类,重写 eat() 方法;猫类 Cat 继承动物类并实现宠物接口,本身有一个属性:名称。

测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧“测试结果”区查看具体的测试集详情。

开始你的任务吧,祝你成功!

/** * 按照动物、宠物、猫和蜘蛛的关系,通过编程实现各自的关系并声明自己的属性和方法。 */ // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码 /********** Begin **********/ // 创建Animal类,它是所有动物的抽象父类 abstract class Animal{ // 声明一个受保护的字符串类型属性type,它记录动物的种类 protected String type; // 声明一个受保护的整数类型属性legs,它记录动物的腿的数目 protected int legs; // 定义一个受保护的有参构造器,用来初始化type和legs属性 protected Animal(String type,int legs){ this.type=type; this.legs=legs; } // 声明抽象方法eat,无返回值 public abstract void eat(); // 声明具体方法walk来打印动物是如何行走的(包括腿的数目)。 // 输出格式:用 xx 条腿走路 public void walk(){ System.out.println(type+"用 "+legs+" 条腿走路"); } } // 定义蜘蛛类 Spider继承Animal类 class Spider extends Animal{ // 定义默认构造器,它调用父类构造器来指明动物类别是spider,且所有蜘蛛都是8条腿。 public Spider(){ super("spider",8); } // 实现eat方法,输出:spider eating @Override public void eat(){ System.out.println("spider eating"); } } // 创建pet(宠物)接口 interface Pet{ // 提供setName(String name) 为该宠物命名 public void setName(String name); // 提供getName() 返回该宠物的名字,返回类型为String public String getName(); // 提供 play()方法,无返回值 public void play(); } // 定义公开的猫类 Cat 继承动物类并实现宠物接口 public class Cat extends Animal implements Pet{ // 定义一个name属性来存宠物的名字 private String name; // 定义一个有参构造器,它使用String参数指定猫的名字 // 该构造器必须调用超类构造器来指明动物种类是cat,且所有的猫都是四条腿 public Cat(String name){ super("cat",4); this.name=name; } // 另定义一个无参的构造器。该构造器调用前一个构造器(用this关键字)并传递一个空字符串作为参数 public Cat(){ this(""); } // 实现 Pet接口的方法 // 设置猫的名称 @Override public void setName(String name){ this.name=name; } // 获取猫的名称 @Override public String getName(){ return name; } // 重写 Animal 类的play(),输出:Cat is playing public void play(){ System.out.println("Cat is playing"); } // 重写 Animal 类的eat(),输出:xx eating // xx 表示姓名 @Override public void eat(){ System.out.println(name+" eating"); } } /********** End **********/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3