/**
* @author: pp_lan on 2020/3/23.
* 班级节目:男孩唱歌、女孩跳舞
*/
interface Student {
/**
* 唱歌
*/
void sing();
/**
* 跳舞
*/
void dance();
}
class Male implements Student {
@Override
public void sing() {
System.out.println("【男生节目】唱歌");
}
@Override
public void dance() {
//男孩不跳舞,将该方法屏蔽
}
}
class Female implements Student {
@Override
public void sing() {
// 女孩不唱歌,将该方法屏蔽
}
@Override
public void dance() {
System.out.println("【女孩节目】跳舞");
}
}
public class StudentAdapt {
private Student std;
public StudentAdapt(String sex) {
if ("male".equalsIgnoreCase(sex)) {
std = new Male();
} else {
std = new Female();
}
}
public void perform() {
// 表演唱歌和跳舞
std.sing();
std.dance();
}
public static void main(String[] args) {
StudentAdapt male = new StudentAdapt("male");
male.perform();
StudentAdapt female = new StudentAdapt("female");
female.perform();
}
}
3. 执行结果
Connected to the target VM, address: '127.0.0.1:62133', transport: 'socket'
【男生节目】唱歌
【女孩节目】跳舞
Disconnected from the target VM, address: '127.0.0.1:62133', transport: 'socket'