找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2318|回复: 0
打印 上一主题 下一主题
收起左侧

java语言对于多态的理解

[复制链接]
跳转到指定楼层
楼主
ID:91350 发表于 2015-10-1 13:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
         人家说面向对象语言如java主要就三大件:封装,继承,多态。java语言对于多态的理解,确实感觉有些难度。如何用自己的语言来描述并理解“多态”这个概念呢?听了3个牛人(郝斌,马士兵,千锋)的讲解,还是觉得千锋的讲解最容易理解,他的学习方法也值得推广。

        理解“多态 ”之前,先记住两条语法:1,一个引用能够调用哪些成员(变量,函数)取决于这个引用本身的类型。对于这句话我的理解:a),多态的前提必须是两个对象之间存在继承关系,只有确保对象之间是继承关系,才能保证不会出现“人是狗,狗是人”的混乱关系。所谓引用就是指针,如,p.name = "zhangsan"; p就是指向某个对象的指针。如,p和s都是指向某个对象的指针,如果:p=s; 则根据本条语法的理解,p所能够调用的成员就是p本身有的那些成员。如何理解“能够调用的成员”呢?“调用”对于变量而言就是赋值,如p.;  这就是赋值;如果调用的是方法,那就是执行一个函数,如,p.study(..);这就表示调用函数。2,一个引用调用的是哪个方法,取决于这个引用所指向的哪个对象。因为在多态中一定存在方法的重写,引用调用的到底是哪个方法?有时容易混乱,如,p和s都是指向某个对象的指针,p=s; 如,p.study(..);这就表示study(..)函数是s所指向的对象的方法。例:
class Test{
    public static void main(string args[])
    { Student s = new student();
      Person  p = s; //向上转型upcasting
      p.;
      p.age=20;
      p.introduce();//introduce()指向的是student对象的方法


    }

}
   实在理解不了,就背下来。这就是千锋等牛人共同推荐的学习方法。




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表