【设计模式】面向对象小结——重写与重载

来源:互联网 发布:网络打赏 人民日报 编辑:程序博客网 时间:2024/04/26 07:04

     通过对《大话设计模式》附录的学习,让我对面向对象技术有了更深一层的理解!下面是我画的一张导图,是我对面向对象技术的总体概括。这篇文章的主要内容,就是围绕这张图,来讲述我的理解。。


     由图得知,我将面向对象分为三个部分:基本、特点及其功能。它们之间像是一种层层递进的关系。

     如果没有基本的抽象思想,将具有相同属性和功能的对象进行整合,那么也就没有面向对象技术,更不可能产生面向对象特点。所以,抽象是核心,是基本;如果没有封装、继承和多态,那么类与类、对象与对象、类与对象之间,就没有了联系,就不能实现对代码的重复利用,也就与面向过程没有区别了。所以,它们是必要元素,是特点;接口、泛型和委托,是其基本和特点的集中体现,使面向对象技术发扬光大。。

     对于面向对象的基本和特点,都是老生常谈,我没什么可多说的,大家可以看我文章《【设计模式】面向对象基础》里面进行了详细的介绍。。现在我最想解释的是多态中的重载和重写,以前我对它俩真是傻傻分不清楚,现在,我一定要将它们弄明白。。


     重写

     重写的使用是建立在继承关系上的,它使子类在继承父类的基础上,增加新的功能,使语言结构更加丰富。

     规则:1、父类与子类方法的定义名称必须完全相同

                2、。。。。。。。。参数列表。。。。。。。

                3、。。。。。。。。返回类型。。。。。。。

                4、子类方法不能比父类方法有更加严格的访问权限


     重载

     重载是多态的集中体现,是让类以统一的方式处理不同类型数据的一种手段。从这一点上,就可以看出它与重写的不同。

     规则:1、方法名称必须完全相同

                2、可以有不同的返回类型,前提是参数列表必须不完全相同。例如,不同的类型、个数和顺序

                3、只有方法才能进行重载。最典型的例子就是重载构造方法

                4、重载时,可以抛出不同的异常


     重写VS重载

         

          区别点          

                重写                

               重载              

定义

方法名称相同

同理

参数列表相同

不同

返回类型相同

无所谓

范围

发生在继承类中

发生在类中

 

     小结

     通过再一次学习,终于捋清了重写与重载的区别,我很高兴。同时,也再次体现出对比的重要性。总结未完,下一篇博客《【设计模式】面向对象小结——接口、泛型、委托》

1 0