package com.iteye.badpie.javacode.duotai;
/**
* 人民警察
*/
public interface IPolice {
/**
* 抓小偷
*/
public void catchThief();
}
package com.iteye.badpie.javacode.duotai;
/**
* 一个警察,执行抓小偷任务.
*/
public class PoliceReal implements IPolice {
@Override
public void catchThief() {
System.out.println("抓住小偷了");
}
}
package com.iteye.badpie.javacode.duotai;
/**
* 另一个警察,也执行抓小偷任务.
*/
public class PoliceHyp implements IPolice {
@Override
public void catchThief() {
System.out.println("大冷天的抓什么小偷啊,不如偷个菜.");
}
}
package com.iteye.badpie.javacode.duotai;
/**
* 市民
*/
public class Citizen {
private String mName;
public Citizen(String name) {
mName = name;
}
/**
* 市民报案
*/
public void report(IPolice police) {
System.out.println(String.format("市民%s丢失手机,向警察报案抓小偷.", mName));
police.catchThief();
}
}
市民虽然向警察报了案,
但你不知道能不能把小偷抓住,
甚至你都不知道他们有没有去抓小偷,
还有可能你在电影里看到的剧情真的发生了...
事情经过可能是这样:
package com.iteye.badpie.javacode.duotai;
public class Main {
public static void main(String[] args) {
Citizen citizen = new Citizen("张三");
IPolice police = getPolice();
citizen.report(police);
}
private static IPolice getPolice() {
return new PoliceReal();
}
}
事情结果一:
市民张三丢失手机,向警察报案抓小偷.
抓住小偷了
事情经过也可能是这样:
package com.iteye.badpie.javacode.duotai;
public class Main {
public static void main(String[] args) {
Citizen citizen = new Citizen("张三");
IPolice police = getPolice();
citizen.report(police);
}
private static IPolice getPolice() {
return new PoliceHyp();
}
}
事情结果二:
市民张三丢失手机,向警察报案抓小偷.
大冷天的抓什么小偷啊,不如偷个菜.
事情经过还可能是这样:
package com.iteye.badpie.javacode.duotai;
public class Main {
public static void main(String[] args) {
Citizen citizen = new Citizen("张三");
IPolice police = getPolice();
citizen.report(police);
}
private static IPolice getPolice() {
return new PoliceReal() {
@Override
public void catchThief() {
System.out.println("抓小偷?笑话,抓了小偷我哪儿收保护费去啊.");
}
};
}
}
事情结果三:
市民张三丢失手机,向警察报案抓小偷.
抓小偷?笑话,抓了小偷我哪儿收保护费去啊.
分享到:
相关推荐
在Java编程语言中,继承、多态、接口、常量以及代码块是核心概念,它们构建了面向对象编程的基础。让我们逐一深入理解这些知识点。 **继承(Inheritance)** 继承是面向对象编程的一个重要特性,它允许一个类(子类...
5. 继承与多态:Java支持单一继承,一个类只能直接继承自一个父类,但可以通过接口实现多重继承的效果。多态性是Java面向对象的重要特性,允许子类对象替换父类对象,实现灵活的代码设计。 6. 异常处理:Java提供了...
流分为字节流和字符流,有输入流和输出流之分。 10. **线程与并发** Java内置对多线程的支持,通过实现Runnable接口或继承Thread类可以创建线程。此外,Java并发库提供了高级同步机制,如synchronized、Lock、...
Java抽象类接口与多态PPT教案学习 Java抽象类接口与多态是Java编程语言的核心概念,本篇资源文件将详细介绍Java中的抽象类、接口和多态的概念、特点和应用。 一、抽象类 抽象类是Java中的一种特殊的类,它不能被...
在本资源"JAVA code example 100 例"中,我们拥有一系列精心挑选的Java编程示例,旨在帮助开发者深入理解和应用Java语言。这个压缩包包含了从基础到高级的100个源代码实例,覆盖了Java编程的多个重要方面。下面,...
【标题】"java_code.rar_java code" 涵盖了丰富的Java编程知识,这是一份包含80多个精心整理的Java代码示例集合,旨在帮助初学者和有经验的开发者深入理解和应用Java语言。这些代码实例是学习Java编程的重要资源,...