A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© cena约翰塞纳 中级黑马   /  2013-9-29 13:21  /  1058 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多态:多态指的是编译时类型变化,而运行时类型不变。
多态分两种:
①    编译时多态:编译时动态重载;
②    运行时多态:指一个对象可以具有多个类型。
对象是客观的,人对对象的认识是主观的。
例:
Animal a=new Dog();查看格式名称;
Dog d=(Dog)a。声明父类来引用子类。
(思考上面的格式)
运行时多态的三原则:(应用时为覆盖)
1、           对象不变;(改变的是主观认识)
2、            对于对象的调用只能限于编译时类型的方法,如调用运行时类型方法报错。
在上面的例子中:Animal a=new Dog();对象a的编译时类型为Animal,运行时类型为dog。
注意:编译时类型一定要为运行时类型的父类(或者同类型)。
对于语句:Dog d=(Dog)a。将d强制声明为a类型,此时d为Dog(),此时d就可以调用运行时类型。注意:a和d指向同一对象。
3、            在程序的运行时,动态类型判定。运行时调用运行时类型,即它调用覆盖后的方法。

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

您需要登录后才可以回帖 登录 | 加入黑马