📄 agency.java
字号:
//情报机关
public class Agency {
public void toMI5(BritishSpy spy) {
// 军情5处当然只能说英语,做英国间谍
System.out.println(spy.speak());
// spy.sprechen();不可见
}
public void inGermany(GermanSpy spy) {
// spy.speak();不可见
System.out.println(spy.sprechen());
}
public static void main(String[] args) {
Agency agency = new Agency();
DoubleAgent da = new DoubleAgent();
BritishSpy es = (BritishSpy) da;
GermanSpy gs = (GermanSpy) da;
agency.toMI5(da); // MI5也不知道他是一个双重间谍,只知道他是BritishSpy
agency.toMI5(es); // 更安全
// toMI5(gs); 不可能
agency.inGermany(da); // 在德国还是安全的,德国人不知道他的双重间谍身份,只知道他是GermanSpy
agency.inGermany(gs);
// inGermany(es); 不可能
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -