大家来讨论下Java多态的实现吧!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【GProgrammer】截止到2008-07-26 13:53:15的历史汇总数据(不包括此帖):
    发帖的总数量:1                        发帖的总分数:10                       每贴平均分数:10                       
    回帖的总数量:8                        得分贴总数量:1                        回帖的得分率:12%                      
    结贴的总数量:1                        结贴的总分数:10                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

       方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写   (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值.   
      

  3.   

    重写Overriding是对继承而言的。
    {如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值. }====〉
    如果父类和子类中都有一个方法名一样的类方法,但参数类型不一样,这也是重载吗?
      

  4.   

    多态分为 
    静态的 就是overload
    动态的蛮就是动态绑定了
    来源于C++的虚函数
    大学老师就是这么说的 哈哈
      

  5.   

    这个说法见了好多了,一直没有见到源头.
    看到很多国内的书里提出了方法多态的概念,这是个跟面向对象的多态一点关系都没有的概念,指的是方法的重载,在C++这样的多范型语言中,可以定义跟类没有关系的方法重载(overloading).但是我感觉这个概念一点意思都没有.反而容易混淆面向对象的多态中的概念,所以最后还是撇开overloading和多态的关系,因为它们本没有关系.overloading指的是一个类中签名不同的同名方法.
    overriding指的是子类对父类中方法的行为.签名必须相同.但是返回值可以有限制的不同,那就是子类的返回类型可以是父类返回类型的子类型.
      

  6.   

    不用理会
    你就知道多态是面向对象的特性之一 ,java中是通过overriding加上动态绑定实现的。
    overloading和多态没有关系。而且这是静态绑定的,跟面向对象没有关系。所以不要把多态和overloading扯上关系。
    具体的你可以看一下《java程序设计语言》,java语言的设计者写的,可以说是权威的。
      

  7.   

    感觉一楼好冤.他第一句就说了,  
    方法的重写Overriding和重载Overloading是Java多态性的不同表现。后面的,是重写和重载的定义 所以6楼说那是多态的定义就张冠李戴了
    至于多态的定义,我觉得根本就是个说不清的问题.因为多态性是面向对象的灵魂特性
    而面向对象是一种思想.