本帖最后由 黑马朱超 于 2013-3-24 00:50 编辑
多态就是父类有个动作,他们的子类都会是实现这个动作。但是实现的方式和对象不一样。
比如就拿中国人的中文来说吧。
class 中国人
{
speakChinese()
{说中文}
}
class 东北人 extends 中国人
{
speakChinese()
{东北口音}//俺们那旮旯
}
class 四川人 extends 中国人
{
speakChinese()
{四川口音}//干啥子嘛
}
class 广东人 extends 中国人
{
speakChinese()
{粤语}//我顶你个肺
}
class 上海人 extends 中国人
{
speakChinese()
{上海口音}//侬家就要啦
}
然后你建立对象的时候,直接 中国人 person1 = new 广东人();
class 中国人
{
speakChinese()
{粤语}
}
那么这个person1 就既有个性又有共性了。共性是继承的方法;个性是运用这个方法的方式和子类特有的方法。
父类的引用虽然接收了自己子类的对象。但是父类并不知道这个对象是哪个。虽然说person1说的是粤语,但他并不知道自己是广东人,他只知道自己是中国人。因此如果person1强制认为自己是上海人的话。上海人 p = (上海人)person1;编译会报错。因为person1说粤语,上海人听不懂.因此父类转成子类后,不一定能够调用子类的方法(因为子类选错了);
加强了扩展性
不知道这个比喻是否能够利于你理解
|