JR 精品文章 - 再谈多态
AD: jr (at) javaresearch.org


首页 | 动态 | 文章 | FAQ  | 新闻 | 下载 | 代码 | 工作 | 调查 | 术语 | 站点 | 图书 | 论坛 | 帮助 | 全部  

TOP | 交流 | 软件 | 专栏 | 开源 | 译/著 | 源码 | API  | 推荐 | FTP  | 积分 | 统计 | 搜索 | Blog | 我们  
首页 » 研究文集 » Java入门 搜索标题相关文章 搜索标题相关文章    评论此文章 发表评论     开始监控此文章 开始监控   加入收藏夹  加入收藏夹
再谈多态
xinglongbing 原创   更新:2008-05-27 10:04:54  版本: 1.0   

多态是面向对象的三大基石之一(继承、多态、封装)。
多态分为编译时多态和运行时多态。
编译时多态即在编译时期就确定了对具体方法体的调用。
运行时多态是在运行时才最后确定对具体方法的调用,因为运行时多态我们才可以采用基于接口编程的方法来设计和编码,
有些设计模式也是以多态为基础的。
下面的讨论的都是运行时多态。
多态的几点说明:多态是针对方法调用而不是变量访问。
多态是针对继承体系结构而言的。
规则:对一个方法的调用是基于具体调用对象而不是引用。
      对于该方法调用所引起的一系列调用(针对继承体系结构中的整个调用链),都是基于该调用对象的。下面是一个实例:

public class Override extends Father
{
    private int count=0;

    public int getCount()
    {
        count++;
        System.out.println("son's getCount()="+count);
        return count;
    }

    public void overRideMethod(){
        
        super.overRideMethod();
    }

    public static void main(String[] args)
    {
        new Override().overRideMethod();
    }

}


class Father
{
    public int getCount()
    {
      System.out.println("father's getCount()");
           return 0;
    }

    public void overRideMethod()
    {
      getCount();  //最终调用哪个getCount方法要看是哪个对象引起的该调用
    }
}



版权声明   给作者写信
本篇文章对您是否有帮助?  投票:         投票结果:     17       3
作者其它文章: 作者全部文章
评论人:challengehope 发表时间: Tue May 27 22:07:40 CST 2008
我来加一条规则:
   重载是编译时多态,重写是运行时多态。
评论人:liuchenyu 发表时间: Wed May 28 14:54:36 CST 2008
顶一下
评论人:donghong82 发表时间: Tue Jun 03 18:08:21 CST 2008
 评论人:challengehope        发表时间: Tue May 27 22:07:40 CST 2008
我来加一条规则:
   重载是编译时多态,重写是运行时多态。

说法不对.
评论人:liuchunmei2008 发表时间: Tue Jun 17 15:15:58 CST 2008
不怎么明白[:(]
评论人:fhyak47 发表时间: Wed Aug 13 22:44:34 CST 2008
支持一下

这个文章共有 5 条评论
主题: java基础之面向对象 上一篇文章
返回文章列表 返回〔Java入门〕
下一篇文章 主题: jdk概述


文字广告链接
        自主、快速定制基于JAVA的B/S业务系统          重量级企业在线自定义WEB报表平台
        Excel制表、零代码发布、打印、图表结合——快逸报表,免费、稳定、功能强大的java工具
        技术圈: 关于Java、dotNet、PHP、Ruby、奇客、Web2.0等更多资讯博客精选文章

关于 JR  |  版权声明  |  联系我们 

©2002-2006 JR 版权所有 沪ICP备05019622号