首页 > 代码库 > 【设计模式】面向对象小结——重写与重载
【设计模式】面向对象小结——重写与重载
通过对《大话设计模式》附录的学习,让我对面向对象技术有了更深一层的理解!下面是我画的一张导图,是我对面向对象技术的总体概括。这篇文章的主要内容,就是围绕这张图,来讲述我的理解。。
由图得知,我将面向对象分为三个部分:基本、特点及其功能。它们之间像是一种层层递进的关系。
如果没有基本的抽象思想,将具有相同属性和功能的对象进行整合,那么也就没有面向对象技术,更不可能产生面向对象特点。所以,抽象是核心,是基本;如果没有封装、继承和多态,那么类与类、对象与对象、类与对象之间,就没有了联系,就不能实现对代码的重复利用,也就与面向过程没有区别了。所以,它们是必要元素,是特点;接口、泛型和委托,是其基本和特点的集中体现,使面向对象技术发扬光大。。
对于面向对象的基本和特点,都是老生常谈,我没什么可多说的,大家可以看我文章《【设计模式】面向对象基础》里面进行了详细的介绍。。现在我最想解释的是多态中的重载和重写,以前我对它俩真是傻傻分不清楚,现在,我一定要将它们弄明白。。
重写
重写的使用是建立在继承关系上的,它使子类在继承父类的基础上,增加新的功能,使语言结构更加丰富。
规则:1、父类与子类方法的定义名称必须完全相同
2、。。。。。。。。。。。。。。。。参数列表。。。。。。。。。。。。
3、。。。。。。。。。。。。。。。。返回类型。。。。。。。。。。。。
4、子类方法不能比父类方法有更加严格的访问权限
重载
重载是多态的集中体现,是让类以统一的方式处理不同类型数据的一种手段。从这一点上,就可以看出它与重写的不同。
规则:1、方法名称必须完全相同
2、可以有不同的返回类型,前提是参数列表必须不完全相同。例如,不同的类型、个数和顺序
3、只有方法才能进行重载。最典型的例子就是重载构造方法
4、重载时,可以抛出不同的异常
重写VS重载
区别点 | 重写 | 重载 |
定义 | 方法名称相同 | 同理 |
参数列表相同 | 不同 | |
返回类型相同 | 无所谓 | |
范围 | 发生在类中 | 发生在继承类中 |
小结
通过再一次学习,终于捋清了重写与重载的区别,我很高兴。同时,也再次体现出对比的重要性。总结未完,下一篇博客《【设计模式】面向对象小结——接口、泛型、委托》
【设计模式】面向对象小结——重写与重载