有一个简单的规则,可以用来判断是否应该将数据设计为继承关系,就是“is-a”规则,它表明子类的每个对象也是超类的对象。例如:每个经历也是雇员。
“is-a”规则的另一种表述法是置换规则,它表明程序中出现超类对象的任何地方都可以用子类置换。
例如:可以将一个子类的对象赋给超类变量.
Employee e;
e=new Employee(...);// Employee object expected
e=new Manager(...);// OK,Manager can be used as well
在java中,对象变量是多态的,一个Empoyee对象既可以引用一个Employee类型对象也可以引用一个Employee类的任何一个子类的对象(例如:manager);