编写一个类Animal,描述动物的属性和行为,通过继承Animal类定义Bird类、Fish类,分别描述鸟类和鱼类的属性和行为,具体要求如下: (1)Animal类定义属性name、color、footNumber,描述动物的名称、颜色、脚的只数;定义成员方法showInfo(),用于输出动物的属性信息;定义成员方法move(),用于描述动物如何行走(输出“可以通过飞、跑、游等方式移动身体”); (2)通过继承Animal定义Bird类,改写父类的move方法(输出“通过飞来移动身体”),增加一个方法nest()用于描述在哪里筑巢; (3)通过继承Animal定义Fish类,改写父类的move方法(输出“通过游来移动身体”),增加一个属性length,用于描述鱼的身长,改写父类的showInfo()方法,除了输出name、color、footNumber属性,还要输出鱼的身长; (4)编写测试类,分别创建上述3个类的对象,并给对象的所有属性赋值,调用对象的所有方法。
举一反三
- 基于人类(Person)定义学生类(Student),具体要求如下: (1)定义公有类人类(Person),定义属性nationality描述国籍,定义属性name描述人的姓名;定义公有方法show()用于输出人的详细信息;定义方法sleep(),用输出语句描述人需要睡觉;定义2个参数的构造方法,用于为两个属性初始化; (2)定义公有类Student类从Person类继承,定义新的属性studentId描述学号,定义新属性score描述学生的成绩;定义3个参数的构造方法,用于为学生的学号、国籍、姓名初始化(在构造方法中首先调用父类构造方法为继承的属性赋值);定义新的方法study(),用输出语句描述学生的学习行为;改写show()方法,用于输出学生的详细信息(国籍和姓名通过调用父类的show方法输出);[br][/br] (3)编写测试类,在主方法中创建Student类的对象,为属性赋值,并调用方法。
- 基于人类(Person)定义教师类(Teacher),定义测试类验证类的继承特性,理解方法重写和super关键字的使用,具体要求如下: [br][/br] (1)定义公有类人类(Person),定义属性nationality描述国籍,定义属性name描述人的姓名;定义方法show()用于输出人的详细信息;定义方法eat(),用输出语句描述人要吃饭的行为;定义2个参数的构造方法,用于为两个属性初始化; [br][/br] (2)定义Teacher类从Person类继承,定义新的属性course描述教师主讲课程;定义1个参数的构造方法为姓名设置初值(国籍则默认为“中国”);改写show()方法,用于输出教师详细信息(国籍和姓名通过调用父类的show方法输出);定义一个新方法teach(),用输出语句描述教师的授课行为; [br][/br] (3)编写测试类(类名以姓名拼音加作业序号命名),在主方法中创建Teacher类的对象,为属性赋值,并调用方法。
- 义一个动物Animal类,包括动物类型type成员变量,一个叫声sound()方法,定义一个Animal类的子类Dog类,重写sound()方法;再定义一个Animal类的子类Cat类,重写sound()方法;定义测试TestAnimal类,声明创建Animal类对象,再分别创建一个Dog类、Cat类的对象,然后通过访问Animal对象来访问Dog、Cat类对象的sound()方法。
- 定义一个Dog类继承Animal类,有自己的属性name和方法watch。定义主方法测试
- 已知现在想给各种动物定义类,由于动物的属性和行为类似,可以通过类的继承来简化代码。先定义一个父类动物类,类名Animal,该类如下: public class Animal{ private String name; private String color; public Animal (String name, String color){ this.name=name; this.color=color; } } 然后定义它的子类,例如:狗Dog类,猫Cat类,让它们都继承与父类Animal。请分别写出这两个子类的代码