• 2022-06-01
    二战期间,战争国间谍活动非常密切,所有英国间谍(BritishSpy)有讲英语的特点(speak()方法),所有德国间谍(GermanSpy)都具有讲德语的特点(sprechen方法)。还有一种双重间谍(DoubleSpy),既可以讲英语又可以讲德语.情报机关(Agency)具有一个间谍测试方法,可以传入某个间谍,并判断间谍的类型。创建德国间谍、英国间谍和双重间谍分别进行测试。(20分)。
  • 仅供参考package chapter_forth; /** * 抽象出间谍接口 * @author: HP * @date: 2021年09月27日 10:11 */ public interface SpyAPI { } package chapter_forth; /** * 英国间谍 */ public interface BritishSpy extends SpyAPI{ default String speak() { return "该类型间谍讲英语"; } } package chapter_forth; /** * 德国间谍 */ public interface GermanSpy extends SpyAPI{ default String sprechen() { return "该类型间谍讲德语"; } }package chapter_forth;/** * 双重间谍 */public class DoubleSpy implements GermanSpy, BritishSpy{}package chapter_forth; /** * 情报机关(Agency) * @author: HP * @date: 2021年09月27日 9:58 */ public class Agency { /** * 判断间谍类型 * @param spyAPI 传入间谍 */ public String judgeSpyType(SpyAPI spyAPI) { String type = null; if (spyAPI instanceof BritishSpy) { BritishSpy britishSpy = (BritishSpy) spyAPI; String result = britishSpy.speak(); if (!result.isEmpty() && result.contains("英语")) { type = "英国间谍"; } } if (spyAPI instanceof GermanSpy) { GermanSpy germanSpy = (GermanSpy) spyAPI; String result = germanSpy.sprechen(); if (!result.isEmpty() && result.contains("德语")) { type = "德国间谍"; } } if (spyAPI instanceof DoubleSpy) { DoubleSpy doubleSpy = (DoubleSpy) spyAPI; if (!doubleSpy.sprechen().isEmpty() && doubleSpy.sprechen().contains("德语") && !doubleSpy.speak().isEmpty() && doubleSpy.speak().contains("英语")) { type = "双重间谍"; } } return type; } /** * 德国情报处的间谍测试方法,调用讲德语的方法 * @param germanSpy */ public Boolean inGermany(GermanSpy germanSpy) { String result = germanSpy.sprechen(); if (!result.isEmpty() && result.contains("德语")) { return true; } return false; } } package chapter_forth; /** * 间谍测试 * @author: HP * @date: 2021年09月27日 10:07 */ public class SpyTest { private static Agency agency = new Agency(); public static void main(String[] args) { SpyAPI spy1 = new BritishSpy(){}; GermanSpy spy2 = new GermanSpy(){}; DoubleSpy spy3 = new DoubleSpy(); System.out.println("spy1是" + agency.judgeSpyType(spy1)); System.out.println("spy2是" + agency.judgeSpyType(spy2)); System.out.println("spy3是" + agency.judgeSpyType(spy3)); } }

    举一反三

    内容

    • 0

      什么是间谍组织和间谍组织代理人?

    • 1

      以下哪项是英国的间谍机关?()

    • 2

      间谍软件具有计算机病毒的所有特征。

    • 3

      间谍组织的特点

    • 4

      行为人虽参加了间谍组织,具有间谍身份,但该人参加间谍组织是为了针对其他国家,负有针对其他国家的间谍任务,而并不是针对危害中华人民共和国国家安全而参加间谍组织的,对这种人也应当按间谍罪予以追究。()