package pack;
import java.util.Scanner;
/*
接口中实例类调用练习;
*/
public class 接口类练习题 {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
Person person = null;
String key = null;
/*
输入将要使用的元素;
*/
while (true) {
key = sc.nextLine();
if (key.equals("user") ) {
/*
如果满足条件则新建一个Person接口中,实例类Coder的实例Person;
*/
person = new Person.User();
/*
doWoek()方法以实例类中的实例为参数调用实例类;
*/
doWork(person);
}
else if (key.equals("loser") ) {
person = new Person.Loser();
doWork(person);
}
else if (key.equals("coder") ) {
person = new Person.Coder();
doWork(person);
}
else if (key.equals("programmer") ) {
person = new Person.Programmer();
doWork(person);
}
else {
break;
}
}
}
public static void doWork(Person person) {
/*
接口中实例类表示方法为 接口名.类名
*/
if (person instanceof Person.User) {
/*
对输入的实例进行转型获得对象,然后对象.方法名 调用实例类方法;
((Person.User) person).live();
}
if (person instanceof Person.Loser) {
((Person.Loser) person).doNothing();
}
if (person instanceof Person.Coder) {
((Person.Coder) person).writeCode();
}
if (person instanceof Person.Programmer) {
((Person.Programmer) person).enjoy();
}
}
}
/*
接口
*/
interface Person {
class User implements Person {
void live() {
System.out.println("我如同行尸走肉。");
}
}
class Loser implements Person {
void doNothing() {
System.out.println("我什么都不做。");
}
}
class Coder implements Person {
void writeCode() {
System.out.println("我会写代码。");
}
}
class Programmer implements Person {
void enjoy() {
System.out.println("这是美好的生活!");
}
}
}