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

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

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

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

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

重写

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

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

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

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

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

重载

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

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

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

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

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

 重写VS重载


          区别点          


                重写                


               重载              


定义


方法名称相同


同理


参数列表相同


不同


返回类型相同


无所谓


范围


发生在类中


发生在继承类中

小结

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

时间: 2024-08-22 03:03:42

【设计模式】面向对象小结——重写与重载的相关文章

【设计模式】面向对象小结——接口、泛型和委托

上一篇文章,通过一张概括性导图,总结性的讲解了一下我对面向对象的理解,以及重写与重载的区别. 这篇文章的主要内容是写,我对面向对象功能:接口.泛型和委托的理解..很多人都认为,我不使用它们,照样能实现程序想要的功能,为什么还要用它们?可以这么说,如果要想混IT行业,那么,我们就要成为专业人员.那么,我们所写的代码就不仅仅是实现其功能那么简单了,我们还要提高程序的性能,更重要的是,我们所写的代码是给别人看的,要让别人看得懂,实现团队合作..接口.泛型和委托让我们的代码更结构化.专业化..    

JavaSE基础知识(5)—面向对象(方法的重写与重载)

一.重写 1.说明 子类对继承过来的父类的方法进行改造,这种现象称为方法的重写或覆盖或覆写(Override) 2.要求 方法签名完全一致,jdk5.0之后,允许返回类型可以是子类类型,权限修饰符可以更大了 二.重载 1.说明 java中提供了一种机制,允许同一个类中多个同名但参数列表不同的方法存在 2.要求 ①同一个类中②方法名必须相同③参数列表必须不同(参数类型.个数或顺序至少有一样不同)④返回类型无要求⑤修饰符无要求 三.重写与重载对比★   说明 发生范围 方法名 参数列表 返回类型 修

重写和重载

1 重载: (1)函数名相同,参数名.参数个数.桉树类型不同 (2)函数重载是面向对象程序设计语言的重要标志 (3)OC不支持重载,Swift支持重载 2 重写 (1)也叫覆盖,指在自类中定义一个与父类中方法同名同参数列表的方法 (2)重写是子类的方法覆盖父类的方法,要求方法名和参数都相同 (3)因为子类会继承父类的方法,而重写就是将从父类继承过来的方法重新定义一次,重新填写方法中的代码. (4)重写必须继承,而重载不用 假设有一个Person类,用于 "name" 和 "a

Java基础(七):重写与重载

一.重写(Override): 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也就是说子类能够根据需要实现父类的方法. 重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常.例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception 异常,因为 Exception 是 IOException 的父类,只能抛出 I

方法的重写与重载

Java 重写(Override)与重载(Overload) 重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变.即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也就是说子类能够根据需要实现父类的方法. 在面向对象原则里,重写意味着可以重写任何现有方法.实例如下: class Animal{ public void move(){ System.out.println("动物可以移动"); } } c

附录A培训实习生-面向对象基础(3):方法重载

就上一篇代码而言,你如果写Cat cat = new Cat();会直接报错错误 : 1       “Cat”方法没有采用“0”个参数的重载 E:\大话设计模式学习\BigDesignPatterns\附录A培训实习生之面向对象基础\动物运动会\AnimalGames\Form1.cs       20     23     AnimalGames 原因就是必要给小猫起名字.如果当真需要不起名字也要生出小猫来,可以采用方法重载. 方法重载提供了创建同名的多个方法的能力,但这些方法需使用不同的参

重写和重载的区别

(1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性. (3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同.无法以返回型别作为重载函数的区分标准. 下

重写与重载 java

重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性. (3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同.无法以返回

java重写和重载

Java 重写(Override)与重载(Overload) 重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也就是说子类能够根据需要实现父类的方法. 重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常.例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception 异常,因为 Except