人总是很忙的,但是一个人就是一个人,不存在分身术。
假设有个人王大柱,他是光明中学的校长,还是光明村的村委会成员,同时还是他儿子的父亲。
那么我们可以这么想:王大柱是一个类的具体的实现对象,这类名叫“王大柱类”,而王大柱类实现了三个接口:“I光明中学校长”、“I光明村村委会成员”、“I父亲”。
画图如下:
那么我们可以称这三个接口为这个类的三个“身份”。
我们可以这样制造一个王大柱出来:
王大柱类 王大柱 = new 王大柱类();
此时,“王大柱”这个变量就代表了[王大柱类]的实例。这个没问题吧?
戏剧性的事情来了。
>“王大柱”在学校是什么身份呢?按正常的角度,他应该是校长的身份,管理学校的方方面面才对。
>“王大柱”在村委会是什么身份呢?按正常角度,他应该是村委会成员,参与村委会的会议和讨论。
>“王大柱”在家里是什么身份呢?按正常的角度,他应该是他儿子的父亲,在家带孩子陪老婆。
所以接下来的代码大家看仔细了:
// 王大柱要以校长身份去开师生会议I光明中学校长 王