A a=new B()的意义 (2008-12-25 11:02:21)

A a=new B()的意义

  (2008-12-25 11:02:21)
标签: 

技术

 

杂谈

分类: 技术文章

前提:A是B的父类。


A a = new B();

这一句的过程是这样的,
1)创建一个类A的引用a
2)创建一个类B的实例
3)把类B的引用赋值给a

因为A是B的父类,所以,赋值成功。

过程:

当消息发送到子类并要求以确定的参数调用其中一个方法时:

消息的处理如下沿着类链自下而上逐级查找,直到找到符合消息所要求的方法为止。

子类检查是否有同名且参数完全对应(参数的个数、类型、排列顺序均要相同)的方法,

若有,

就调用它,

若没有,

它的父类就响应这个消息的处理,

查找同名及同参数个数、类型、顺序的方法,

若有,

就调用这个方法。

如果查找到最上层仍未找到就会产生"编译出错"。

子类中若有与其祖先类同名的并具有相同参数表的方法时,

                             则具有屏蔽或隐藏其祖先类同名方法的功能。

利用多态允许将一个对象声明为某个父类,

而以扩展类实例化它(因为每一个子类都属于其超类的范围,从继承链的层次结构看,属于拓宽转换)。

多态机制可以方便对象的管理。JVM可以根据实例的类型动态地调用实现相应的方法。------没看懂这句话!

 

设计模式比较难理解,初学java也不用考虑那么复杂,   
    
    如A有两方法     m1  m2   
    B重载了其中一个m2   
    
    那么a.m1()     执行A.m1,     a.m2()执行B.m2()   
    我觉得这是最实际的解释   


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值