题目:
使用面向对象的思想编写程序描述动物,说明:
(1) 分析兔子和青蛙的共性,定义抽象的动物类,拥有一些动物共有的属性:名字、颜色、类别(哺乳类、非哺乳类),以及共有的行为:吃东西,发出叫声。
(2)定义一些特殊能力做为接口,例如游泳,飞翔。
(3)定义三种动物:兔子继承动物类;根据青蛙会游泳,因此继承动物同时实现游泳接口;老鹰会飞,因此继承动物同时实现飞翔接口。
(4)设计测试类,调用子类所覆写的这些抽象方法。
已有的抽象类定义如下:
abstract class Animal{ //动物类
private String name;//名字
private String color;//颜色
private String type;//类别(哺乳类、非哺乳类)
public Animal(String name, String color, String type){
this.name = name;
this.color = color;
this.type = type;
}
public String getName(){
return name;
}
public String getColor(){
return color;
}
public String getType(){
return type;
}
public abstract void shout();
public abstract void eat();
}
需要编写两个接口体现特殊能力:
(1)定义一个游泳的接口Swimmable,在此接口中有抽象方法swim()。
(2)定义一个游泳的接口Flyable,在此接口中有抽象方法fly()。
需要编写三个子类兔子、青蛙和老鹰:
(1) 定义一个子类Rabbit,兔子不会飞也不会游泳,继承动物类,并覆写shout()和eat()方法。
(2) 定义一个子类Frog,青蛙不会飞但会游泳,继承动物类并实现接口Swimmable,并覆写shout()、eat()方法和swim()方法。
(3) 定义一个子类Eagle,老鹰会飞但不会游泳,继承动物类并实现接口Flyable,并覆写shout()、eat()方法和fly()方法。
已有的Main类定义:
/* 请在这里填写答案 */
public class Main{
public static void main(String[] args) {
AnimalAction(new Rabbit("小白", "白色", "哺乳类"));
System.out.println("====================");
AnimalAction(new Frog("弗洛格", "绿色", "非哺乳类"));
SwimAction(new Frog("弗洛格", "绿色", "非哺乳类"));
System.out.println("====================");
AnimalAction(new Eagle("凤头鹰","灰色","非哺乳类"));
FlyAction(new Eagle("凤头鹰","灰色","非哺乳类"));
}
public static void AnimalAction(Animal an) {
an.shout();
an.eat();
}
public static void SwimAction(Swimmable s) {
s.swim();
}
public static void FlyAction(Flyable f) {
f.fly();
}
}
根据题目要求,代码实现如下:
interface Swimmable {
abstract void swim();
}
interface Flyable {
abstract void fly();
}
class Rabbit extends Animal {
public Rabbit(String name, String color, String type) {
super(name, color, type);
}
@Override
public void shout() {
System.out.println("那只"+super.getColor()+"的,名字叫"+super.getName()
+"的兔子正在叽叽的叫");
}
@Override
public void eat() {
System.out.println("兔子是哺乳类,爱吃胡萝卜");
}
}
class Frog extends Animal implements Swimmable {
public Frog(String name, String color, String type) {
super(name, color, type);
}
@Override
public void shout() {
System.out.println("那只"+super.getColor()+"的,名字叫"+super.getName()
+"的青蛙正在呱呱的叫");
}
@Override
public void eat() {
System.out.println("青蛙是非哺乳类,爱吃昆虫");
}
@Override
public void swim() {
System.out.println("青蛙是游泳高手");
}
}
class Eagle extends Animal implements Flyable {
public Eagle(String name, String color, String type) {
super(name, color, type);
}
@Override
public void shout() {
System.out.println("那只"+super.getColor()+"的,名字叫"+super.getName()
+"的老鹰正在啾啾的叫");
}
@Override
public void eat() {
System.out.println("老鹰是非哺乳类,爱吃小鸡");
}
@Override
public void fly() {
System.out.println("老鹰是飞翔高手");
}
}
以上就是 PTA-6-48 使用面向对象的思想编写程序描述动物 的全部内容了,希望能对你有所帮助!