1.**
编写程序描述兔子和青蛙 需求说明:使用抽象类的思想,描述兔子和青蛙。
实现思路及关键代码
**
1)分析兔子和青蛙的共性
2)根据共性,定义抽象的动物类
属性:名字、颜色、类别(哺乳类、非哺乳类)
方法:吃饭,发出叫声
3)根据青蛙会游泳 抽象游泳的接口
方法:游泳
4)定义兔子继承动物类,青蛙继承动物同时实现游泳接口
程序运行结果如图所示。
//测试文档
public class Test {
public static void main(String[] args) {
Animal rabbit = new Rabbit(“美人”, “黑色”, “哺乳类”);
System.out.println(rabbit);
rabbit.shout();
rabbit.eat();
System.out.println("-------------------------------------");
Animal frog = new Frog(“大兵”, “绿色”, “非哺乳类”);
System.out.println(frog);
frog.shout();
frog.eat();
Swim frog2 = new Frog();
frog2.swim();
}
}
//定义抽象方法Animal
public abstract class Animal {
private String name;
private String color;
private String category;
public abstract void eat();
public abstract void shout();
public Animal(String name, String color, String category) {
this.name = name;
this.color = color;
this.category = category;
}
public Animal() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
}
//定义接口Swim
public interface Swim {
void swim();
}
//定义兔子类
public class Rabbit extends Animal {
public Rabbit() {
}
public Rabbit(String name, String color, String category) {
super(name, color, category);
}
@Override
public void eat() {
System.out.println(“兔子是” + getCategory() + “,爱吃胡萝卜”);
}
@Override
public void shout() {
System.out.println(“正在叽叽的叫”);
}
public String toString() {
return “那只” + getColor() + “的,名叫” + getName() + “的兔子正在”;
}
}
//定义青蛙类
public class Frog extends Animal implements Swim{
public Frog(String name, String color, String category) {
super(name, color, category);
}
public Frog() {
}
@Override
public void eat() {
System.out.println(“青蛙是”+getCategory()+",爱吃昆虫");
}
@Override
public void shout() {
System.out.println(“正在呱呱的叫”);
}
public String toString() {
// return “那只”+super.getColor()+“的,名叫”+super.getName()+“的兔子”+;
return “那只” + super.getColor() + “的,名叫” + super.getName() + “的青蛙”;
}
@Override
public void swim() {
System.out.println(“虽然不是鱼,但青蛙也是泳坛高手”);
}
}