狗是人类最忠诚的伙伴,当狗遇到不同的人会有不同的反应,下面 要求编写一个案例模拟狗遇到不同的人时的反应。首先需要有一只 狗,不同的人去喂狗,狗会有不同的反应,具体如下: (1)主人喂狗时,狗会很开心的欢跳. (2)主人的家人喂狗时,狗会很平常的吃东西。 (3)陌生人喂狗时,狗会很有警惕,并发出叫声。 本案例要求使用抽象类实现。
编辑基本信息:
//此处加上包名,例如:package Voice;
//抽象类动物
abstract class Animal{
abstract void setName(String name); //设置动物名称
}
//抽象类人
abstract class Person{
abstract void setName(String name); //设置饲养者姓名
abstract void action(String name); //不同饲养者动物表现出不同的行为
}
//获取名字信息
interface GetName{
String getName();
}
//狗
class Dog extends Animal implements GetName{
private String name;
void setName(String name){
this.name = name;
}
@Override
public String getName() {
return name;
}
}
//主人
class Host extends Person implements GetName{
private String name;
void setName(String name){ //设置主人名称
this.name = name;
}
void action(String name){ //动物行为
System.out.println(name + "开心的欢跳...");
}
@Override
public String getName(){ //重写接口函数
return name;
}
}
//家人
class Folk extends Person implements GetName{
private String name;
void setName(String name){
this.name = name;
}
void action(String name){
System.out.println(name + "平常的吃东西...");
}
@Override
public String getName(){
return name;
}
}
//陌生人
class Stranger extends Person implements GetName{
private String name;
void setName(String name){
this.name = name;
}
void action(String name){
System.out.println(name + "汪汪汪...");
}
@Override
public String getName(){
return name;
}
}
创建对象:
//此处加上包名,例如:package Voice;
import java.util.Scanner;
public class feed {
static void show(){ //定义静态函数输出提示信息
System.out.println("0:退出系统" + "\t" + "1:主人喂食" + "\t" + "2:家人喂食" + "\t" + "3;陌生人喂食");
}
public static void main(String[] args) {
Host host = new Host();
Folk folk = new Folk();
Stranger stranger = new Stranger();
Dog dog = new Dog();
host.setName("主人");
folk.setName("家人");
stranger.setName("陌生人");
dog.setName("旺财");
int num;
Scanner in = new Scanner(System.in);
OUT:
while (true){
show();
System.out.print("请选择:");
num = in.nextInt();
switch (num){
case 0:
break OUT;
case 1:
host.getName();
host.action(dog.getName());
break;
case 2:
folk.getName();
folk.action(dog.getName());
break;
case 3:
stranger.getName();
stranger.action(dog.getName());
break;
}
}
}
}
通过不同的角色调用不同的代码,实现不同人喂食狗,狗表现出不同的亲密程度。