题目:
使用面向对象的思想编写程序描述动物,说明:
(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);}@Overridepublic void shout() {System.out.println("那只"+super.getColor()+"的,名字叫"+super.getName()+"的兔子正在叽叽的叫");}@Overridepublic void eat() {System.out.println("兔子是哺乳类,爱吃胡萝卜");}
}class Frog extends Animal implements Swimmable {public Frog(String name, String color, String type) {super(name, color, type);}@Overridepublic void shout() {System.out.println("那只"+super.getColor()+"的,名字叫"+super.getName()+"的青蛙正在呱呱的叫");}@Overridepublic void eat() {System.out.println("青蛙是非哺乳类,爱吃昆虫");}@Overridepublic void swim() {System.out.println("青蛙是游泳高手");}
}
class Eagle extends Animal implements Flyable {public Eagle(String name, String color, String type) {super(name, color, type);}@Overridepublic void shout() {System.out.println("那只"+super.getColor()+"的,名字叫"+super.getName()+"的老鹰正在啾啾的叫");}@Overridepublic void eat() {System.out.println("老鹰是非哺乳类,爱吃小鸡");}@Overridepublic void fly() {System.out.println("老鹰是飞翔高手");}
}
以上就是 PTA-6-48 使用面向对象的思想编写程序描述动物 的全部内容了,希望能对你有所帮助!