一道Java初学者练习题,拜托了各位编程大神!

定义一个动物类,里面有一个方法voice(),定义一个类Cat,实现voice方法,然后增加一种新的动物类型:Pig(猪),实现voice()方法。定义一个Dog类,实现voice方法,定义一个Store(宠物店)类的getInstance方法:如果传入的参数是字符串dog,则返回一个Dog对象;如果传入pig,则返回一个Pig对象;否则,返回一个Cat对象。

你好,提问者:

如果解决了你的问题,请采纳,若有疑问请追问,谢谢!

package com.zyx.cn.baidu_test;
/**
 * 动物类
 * @author yltd
 */
public interface Animal {
//voice方法
public void voice();
}

package com.zyx.cn.baidu_test;
/**
 * 猫类
 * @author yltd
 *
 */
public class Cat implements Animal {
@Override
public void voice() {
System.out.println("Cat");
}
}

package com.zyx.cn.baidu_test;
//猪类
public class Pig implements Animal {
@Override
public void voice() {
System.out.println("Pig");
}
}

package com.zyx.cn.baidu_test;
//狗类
public class Dog implements Animal {
@Override
public void voice() {
System.out.println("Dog");
}
}

package com.zyx.cn.baidu_test;
/**
 * 宠物店
 * @author yltd
 */
public class Store {

public Animal getInstance(String srt){
Animal animal =null;
if("dog".equals(srt)){
animal = new Dog();
}else if("pig".equals(srt)){
animal = new Pig();
}else{
animal = new Cat();
}

return animal;
}
}

package com.zyx.cn.baidu_test;
/**
 * 测试类
 * @author yltd
 */
public class AnimalTest {
public static void main(String[] args) {
Store store =new Store();
Animal animal_1 =  store.getInstance("cat");
animal_1.voice();
System.out.println("=============");
Animal animal_2 =  store.getInstance("dog");
animal_2.voice();
System.out.println("=============");
Animal animal_3 =  store.getInstance("pig");
animal_3.voice();
}
}

结果:
Cat
=============
Dog
=============
Pig

温馨提示:答案为网友推荐,仅供参考