方法重载和方法重写的概念和区别

方法重载和方法重写的概念和区别

方法重载是让类以统一的方式处理不同类型数据的一种手段。下面是整理的方法重载和方法重写的概念和区别,希望对大家有所帮助。

方法重载和方法重写的概念和区别

搜索量:昨日访问量TOP6000(内部统计)载和方法重写的概念和区别,希望大家喜欢!

重载:一个类中有一个方法A,你又在这个类中创建了一个方法B,方法B的名字和A一样,返回值类型也一样,但是参数的类型或个数不同,此时B重载了A。

例如:

public class TestClass{

public int test(int i){return 1;}

public int test(float f){return 1;}

}

重写:一个类M继承另一个类N,N中有一个方法A,这时你在M写了一个方法B,方法B的名字、返回值以及参数都和A一样,此时B重写了A。

例如:

public class TestClass1{

public int test(int i){return 1;}

}

public class TestClass2 extends TestClass1{

public int test(int i){return 2;}

}

方法重载:同一个类中,方法名相同,参数不同,方法体不同;

方法重写:不同的类中,方法体不同,参数相同,方法名也相同。

(两同两不同)

方法重载的作用: 在有多个同名参数的类中,在调用时通过不同的参数来调用不同的方法。

方法重写的作用: 在继承中,子类可用方法重写,对父类进行扩充或改造。

用java重载的方法

public static double max(double num1, double num2) {

if (num1 > num2)

return num1;

else

return num2;

}

如果你调用max方法时传递的是int型参数,则 int型参数的max方法就会被调用;

如果传递的事double型参数,则double类型的max方法体会被调用,这叫做方法重载;

就是说一个类的两个方法拥有相同的名字,但是有不同的参数列表。

Java编译器根据方法签名判断哪个方法应该被调用。

方法重载可以让程序更清晰易读。执行密切相关任务的方法应该使用相同的名字。

重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法。

PHP中子类重载父类的方法介绍

在PHP中不能定义重名的函数,也包括不能再同一个类中定义重名的方法,所以也就没有方法重载。单在子类中可以定义和父类重名的.方法,因为父类的方法已经在子类中存在,这样在子类中就可以把从父类中继承过来的方法重写。

子类中重载父类的方法就是在子类中覆盖从父类中继承过来的方法,父类中的方法被子类继承过来不就可以直接使用吗?为什么还要重载呢?因为有一些情况我们必须要覆盖的。例如,有一个“鸟”类,在这个类中定义了鸟的通用方法“飞翔”。将“鸵鸟”类作为它的子类,就会将“飞翔”的方法继承过来,但只要一调用“鸵鸟”类中的这个“飞翔”的方法,鸵鸟就会飞走。虽然鸵鸟是不会飞的,但其他特性都具有“鸟类”的特性,所以在声明“鸵鸟”类时还是可以继承“鸟”类的,但必须在“鸵鸟”类中将“鸟”类中继承过来的“飞翔”方法改写,就需要在子类中重载父类中的方法。

在下面的例子中,声明的Person类中有一个“说话”方法,Student类继承Person类后可以直接使用“说话”方法。但Person类中的“说话”方法只能说出它自己的成员属性,而Student类对Person类进行了扩展,多添加了几个新的成员属性。代码如下所示:

name = $name;$this ->sex = $sex;$this ->age = $age;}//在人类中声明一个通用的说话方法,介绍一下自己function say(){echo "我的名字:".$this-> name.",性别:".$this ->sex.",年龄:".$this ->age."。

";}}//声明一个学生类,使用extends关键字扩展(继承)person类class Student extends Person {private $school; //在学生类中声明一个所在学校school的成员属性//覆盖父类中的构造方法,在参数列表中添加一个学校属性,用来创建对象并初始化成员属性function __construct($name="",$sex="男",$age=1,$school=""){$this ->name = $name;$this ->sex = $sex;$this ->age = $age;$this ->school = $school;}function study(){echo $this ->name."正在".$this ->school."学习

";}//定义一个和父类中同名的方法,将父类中的说话方法覆盖并重写,多说出所在的学校名称function say(){echo "我的名字:".$this ->name.",性别:".$this ->sex.",年龄:".$this ->age.",在".$this ->school."学校上学

";}}$student= new Student("张三","男",20,"edu"); //创建一个学生对象,并传给一个学校名称参数$student -> say(); //调用学生类中覆盖父类的说话方法?>

改程序运行后输出的结果为:

我的名字叫:张三,性别:男,我的年龄是:20,在edu学校上学

在PHP中,提供了在子类重载的方法中调用父类被覆盖方法的功能。这样就可以在子类重写的方法中,继续使用从父类继承过来并被覆盖的方法,然后再按要求多添加一些新功能。调用的格式是使用“parent:方法名”在子类的重载方法中调用父类中被覆盖的方法。将上例中的代码修改一下,在子类重写的构造方法中使用“parent::__construct()”调用父类中被覆盖的构造方法,再多添加一条对子类中新扩展的成员属性初始化的代码。在子类中重写的say()方法中使用“parent::say()”调用父类中被覆盖的say()方法,再添加上输出子类成员属性的功能。

代码如下所示:

name = $name;$this ->sex = $sex;$this ->age = $age;}//在人类中声明一个通用的说话方法,介绍一下自己function say(){echo "我的名字:".$this-> name.",性别:".$this ->sex.",年龄:".$this ->age."。 ";}}//声明一个学生类,使用extends关键字扩展(继承)person类class Student extends Person {private $school; //在学生类中声明一个所在学校school的成员属性//覆盖父类中的构造方法,在参数列表中添加一个学校属性,用来创建对象并初始化成员属性function __construct($name="",$sex="男",$age=1,$school=""){//调用父类中被覆盖的构造方法,为从父类中集成过来额出行赋初值parent::__construct($name,$sex,$age);$this ->school = $school;}function study(){echo $this ->name."正在".$this ->school."学习

";}//定义一个和父类中同名的方法,将父类中的说话方法覆盖并重写,多说出所在的学校名称function say(){parent::say(); //调用父类中被本方法覆盖掉的方法echo "在".$this ->school."学校上学

";}}$student= new Student("张三","男",20,"edu"); //创建一个学生对象,并传给一个学校名称参数$student -> say(); //调用学生类中覆盖父类的说话方法?

上面的例子输出的结果和前一个例子是一样的,但在本例中通过在子类中直接调用父类中被覆盖的方法要简便很多。另外,在子类覆盖父类的方法时一定要注意,在子类中重写的方法访问权限一定不能低于父类被覆盖的方法的访问权限。例如,如果父类中的访问权限是protected,那么在子类中重写的方法的权限就要是protected或public。

方法重载和方法重写的概念和区别

转载请注明出处我优求知网 » 方法重载和方法重写的概念和区别

学习

报价函范文

阅读(58)

本文为您介绍报价函范文,内容包括报价函范文模板,报价函范文。报价函内容报价函是指企业向顾客提供商品的有关交易条件的信函。一般来说,报价函主要包括以下内容:

学习

高考英语口试应试技巧

阅读(53)

本文为您介绍高考英语口试应试技巧,内容包括高考英语口试有必要吗,高三英语口试具体流程。高考英语口试应试技巧,高考时候点击都知道,会在正式高考之前进行英语口试考试,这个时候对于不常开口说英语的同学应试时候的技巧十分重要,以下是为大

学习

小学生的守则

阅读(91)

本文为您介绍小学生的守则,内容包括小学生的守则有哪些,小学生的守则和行为规范。小学生守则规范是中国小学生在学习和日常生活中应当遵循的道德规范,于1981年正式颁布《小学生守则》,后又经过修订编成新版《小学生守则》。以下是给大家整

学习

病痛折磨无奈的句子

阅读(56)

本文为您介绍病痛折磨无奈的句子,内容包括病痛的感悟经典句子,愿人间无病痛的句子。在日常学习、工作抑或是生活中,大家总少不了接触一些耳熟能详的句子吧,从表达的角度说,句子是最基本的表述单位。还在苦苦寻找优秀经典的句子吗?以下是精心

学习

带然字成语

阅读(179)

本文为您介绍带然字成语,内容包括带然字成语有哪些,带有然的成语。成语是汉语词汇中定型的词。成语,众人皆说,成之于语,故成语。成语多为四字,亦有三字,五字甚至七字以上。下面是整理的带然字成语,欢迎大家阅览。

学习

庾信人物介绍

阅读(61)

本文为您介绍庾信人物介绍,内容包括庾信个人简介,庾信的生平介绍。导语:庾信是南朝时期著名的文学创作大家,下面是语文迷收集整理的关于庾信的人物介绍,欢迎大家阅读参考!

学习

带有然字的成语

阅读(56)

本文为您介绍带有然字的成语,内容包括带有然字的成语是什么,然字的成语大全。成语是中国传统文化的一大特色,有固定的结构形式和固定的说法,表示一定的意义,在语句中是作为一个整体来应用的,承担主语、宾语、定语等成分。成语有很大一部分是

学习

描写绿色的成语

阅读(59)

本文为您介绍描写绿色的成语,内容包括描写绿色的成语有哪些,描写绿色的词语。成语是中国传统文化的一大特色,有固定的结构形式和固定的说法,表示一定的意义,在语句中是作为一个整体来应用的,承担主语、宾语、定语等成分。下面为大家带来描写

学习

传奇英雄想象作文

阅读(63)

本文为您介绍传奇英雄想象作文,内容包括传奇英雄故事作文,二年级作文传奇英雄。在平平淡淡的日常中,大家总免不了要接触或使用作文吧,写作文是培养人们的观察力、联想力、想象力、思考力和记忆力的重要手段。作文的注意事项有许多,你确定会

学习

郴州网上祭英烈献花留言

阅读(51)

本文为您介绍郴州网上祭英烈献花留言,内容包括祭英烈留言献花,郴州文明网网上祭英烈留言寄语。按照中央文明办统一部署,江苏省文明办、江苏文明网在4月1日至7日期间,集中开展“网上祭英烈”网络文明传播活动。以下是收集整理的郴州网上祭

学习

小黄人经典台词

阅读(155)

本文为您介绍小黄人经典台词,内容包括小黄人经典台词英文,小黄人经典台词完整版。台词(part/dialog/line)是戏剧表演中角色所说的话语。是剧作者用以展示剧情,刻画人物,体现主题的主要手段。也是剧本构成的基本成分。以下是帮大家整理的小

学习

幼儿园公开教案漫游魔法王国

阅读(55)

本文为您介绍幼儿园公开教案漫游魔法王国,内容包括幼儿园漫游糖果王国教案,幼儿园主题文化教案奇幻王国。作为一名教职工,编写教案是必不可少的,教案是保证教学取得成功、提高教学质量的基本条件。那么什么样的教案才是好的呢?下面是帮大家

学习

六个月大宝宝如何护理

阅读(108)

本文为您介绍六个月大宝宝如何护理,内容包括6个月较大婴儿怎么护理,六个月宝宝护理和喂养。六个月大的宝宝处于一中可以喂食但是又不知道喂什么的状态,所以广大的家长朋友很是烦恼,下面给大家介绍一下六个月大宝宝应该如何喂养?宝宝护理有

学习

我的同桌是才女优秀作文

阅读(92)

本文为您介绍我的同桌是才女优秀作文,内容包括我的同桌优秀作文合集15篇,我的同桌范文。在学习、工作或生活中,许多人都有过写作文的经历,对作文都不陌生吧,作文一定要做到主题集中,围绕同一主题作深入阐述,切忌东拉西扯,主题涣散甚至无主题。

学习

win7安装方法

阅读(39)

本文为您介绍win7安装方法,内容包括win7安装方法大全,win7安装方法无需u盘。Windows7是由微软公司(Microsoft)2009年10月22日发布的桌面端操作系统,内核版本号为WindowsNT6.1。下面是整理的关于win7安装方法的内容,欢迎大家阅读。

学习

灰卡的介绍及使用方法

阅读(270)

本文为您介绍灰卡的介绍及使用方法,内容包括灰卡测光使用方法,纺织灰卡的使用方法和步骤。灰卡是精确检测曝光量的基准。层次丰富、色彩饱和的照片来自精准的曝光。如果拍摄场景的光线过亮或过暗,就可能导致曝光出现偏差。灰卡能将复杂光

学习

声卡驱动更新后电脑没声音的解决方法

阅读(1388)

本文为您介绍声卡驱动更新后电脑没声音的解决方法,内容包括电脑更新了声卡驱动后没声音了,win7声卡驱动正常但是没有声音。声卡驱动更新后电脑没声音了怎么呢?以下是整理的声卡驱动更新后电脑没声音的解决方法,欢迎大家借鉴与参考,希望对

学习

员工激励的作用和激励方法

阅读(50)

本文为您介绍员工激励的作用和激励方法,内容包括短期激励与长期激励相结合作用,激励员工的工作积极性的激励措施。企业的发展离不开人的创造力的发挥和积极性的提高,因此企业一定要重视对员工的激励。根据实际情况,建立起适应员工需求、企

学习

正确给安卓系统手机杀毒的方法

阅读(77)

本文为您介绍正确给安卓系统手机杀毒的方法,内容包括安卓手机杀毒软件哪个最好,安卓系统手机怎么杀毒。现在市场上使用人数最多的还是安卓手机,而手机出现中毒的大多数也是安卓手机。那么正确给安卓系统手机杀毒的方法呢?下面是精心整理

学习

笔记本屏幕突然不亮的解决方法

阅读(67)

本文为您介绍笔记本屏幕突然不亮的解决方法,内容包括笔记本屏幕突然不亮了,笔记本屏幕突然变暗无法调亮。笔记电脑有几大主要部件,包括CPU,主板,内存,显卡。这几个部件缺一不可,只要其中一个出现问题,都会导致笔记本不能正常运行,最为常见的便

学习

八卦掌的基本练习方法

阅读(41)

导语:卦掌以掌法为主,其基本内容是八掌,合于八卦之数;在行拳时,要求以摆扣步走圆形,将八个方位全都走到,而不像一般拳术那样,或来去一条线,或走四角,所以称为“八卦掌”。下面就为大家带来八卦掌基本练习方法,欢迎大家阅读!

学习

cpu验证真假的方法

阅读(59)

本文为您介绍cpu验证真假的方法,内容包括cpu验证真假,散片cpu真假。无论是Intel还是AMD的CPU,盒装产品的来路都令人十分担忧。以IntelCPU为例,市场上绝大部分盒装产品都是假冒的,甚至有统计说已经达到了75%以上。下面是收集整理的cpu验证真