最近学姐在面试,一家外企。笔试那天给我qq上问我java的题,看了一下,大多都是基础题。于是这一年决定多抓基础。最近在看《java核心技术》,看到了多态。
关于多态,我自己的一些理解。
首先,“多态”这个概念的存在一定是在“继承”的环境下,才能谈“多态”。
下面举个例子:
Manager,Secretary,Programmer,他们都是Employee,这没有争议。
我们在写extends之前,问自己是否满足“is-a”原则。
Manager "is-a" Employee? yes
Secretary "is-a" Employee? yes
Programmer "is-a" Employee? yes
所以他们都可以extends Employee。
讲“多态”的时候就要反过来了。即:一个Employee的对象变量有“多种状态形式”,即“多态”的。
一个Employee的状态有仨:Manager,Secretary,Programmer。
要这么理解多态。