那么我们就从需求方面走
首先我们确定了人的行为
我们不可能设计一个万能的persion class
我们只要实现有限的功能,在系统中用到的,比如eat() sleep()
现在要在性别上进行区分
下面对这样的需求进行抽象
考虑到男人、女人终究是人所以和人的关系是一个继承关系 is-a,而男人或者女人又具有吃睡这么些行为,所以把这组行为做一个接口
abstract class Person { abstract void male(); abstract void female(); }
interface Action { void eat(); void sleep(); }
public class GkZhong extends Person implements Action { //....... }
|
当我们某一业务上面的需要(多态):
public class Service { private Person persion; public void setPerson(Person persion){ this.persion = persion; } public void fun(){ //persion.eat(); 这里窄化了,persion不可能有eat()的,但当我们set进来的是GkZhong的对象的时候是需要这么个行为的,这时候困惑了 } }
|
不知道表述清楚未
[该贴被gkzhong于2007年05月12日 17:45修改过]
[该贴被gkzhong于2007年05月12日 17:45修改过]