多态;多态举例

来源:互联网 发布:工业交换机 知乎 编辑:程序博客网 时间:2024/05/22 06:06

个人对于多态的理解:父类的引用可以直接创建子类对象。






第89行,其实就是a在格式上,是个父类的Animal类型,所以只有父类的方法,没有子类方法可用,所以想要使用子类方法,必须向下转型,即强制转换成子类类型,

其格式为: 子类  对象名2 = ( 子类) 对象名1;


instanceof  关键字: 判断左边对象是否属于右边类型。   即  和 == 用法一样,只不过是判断类型的。


多态的应用举例:  猫狗都属于动物类,猫狗本身有共有动作“吃”,和非共有动作“抓老鼠”和“看家”;

我们让动物类都有吃的动作还有一个其他动作,然后猫狗继承动物类,再分别定义其他动作为“抓老鼠”、“看家",复写父类;

最后定义一个单独的动作类,用来调用动物类的动作,打包吃、和动作;

这样,主函数调用 单独的动作类,创建其对象,即可得到结果;

而且最重要的,之后其他程序员进行程序修改扩展时候,如果加入其他动物比如老虎,”捕食“动作,

也可以用打包的动作类调用动物类来创建对象,增强了程序的扩展性。



下面说一下多态成员特点:



静态绑定:静态成员 所属的类一加载,该成员就随着加载并和该类绑定了,该成员被调用(尤其是多态)时候,jvm直接访问静态区的成员。

也就是说,当调用静态成员时,只看该成员所属类,并且不会被复写。

动态绑定:非静态成员,在被调用时,需要看是哪个对象调用它;谁调用它,他就跟谁绑定。可以被子类复写。


0 0