62,612
社区成员
发帖
与我相关
我的任务
分享
package com.csdn;
interface Animal {
void speak();
}
class Dog implements Animal {
@Override
public void speak() {
System.out.println("dog speak.");
}
}
class Cat implements Animal {
@Override
public void speak() {
System.out.println("cat speak.");
}
}
class Pig implements Animal {
@Override
public void speak() {
System.out.println("pig speak.");
}
}
public class NoIfElse {
// 比方说现在有个需求,
// 通过state状态来判断那种动物叫
// 0让狗叫,1让猫叫,2让猪叫
/**
* 方法1
*/
private void animalSpeak(int state) {
Animal[] animals = { new Dog(), new Cat(), new Pig() };
animals[state].speak();
}
/**
* 方法2,没有用到Animal接口
*/
private void animalSpeak2(int state) {
if (state == 0) {
new Dog().speak();
}
if (state == 1) {
new Cat().speak();
}
if (state == 2) {
new Pig().speak();
}
}
public static void main(String[] args) {
NoIfElse t = new NoIfElse();
int state = 1;
t.animalSpeak(state);
t.animalSpeak2(state);
}
}