百度
360搜索
搜狗搜索

方法重载和方法重写,方法重写和方法重载的区别?重载可以改变返回值类型吗? 注意事项是什么?详细介绍

本文目录一览: 方法重写和方法重载的区别

重载和重写的区别如下:
1、定义不同。重载是定义相同的方法名、参数不同,重写是子类重写父类的方法。
2、范围不同。重载是在一个类中,重写是子类与父类之间的。
3、多态不同。重载是编译时的多态性,重写是运行时的多态性。
4、参数不同。重载的参数个数、参数类型、参数的顺序可以不同,重写父类子方法参数必须相同。
5、修饰不同。重载对修饰范围没有要求,重写要求重写方法的修饰范围大于被重写方法的修饰范围。
方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数。重载Overloading是一个类中多态性的一种表现。
Java的方法重载就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。

重载和重写有什么区别

重载和重写的区别有以下几点:
一、定义上的区别:
1、重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。调用的时候根据函数的参数来区别不同的函数。
2、覆盖(也叫重写)是指在派生类中重新对基类中的虚函数(注意是虚函数)重新实现。即函数名和参数都一样,只是函数的实现体不一样。
二、规则上的不同:
1、重载的规则:
①必须具有不同的参数列表。
②可以有不同的访问修饰符。
③可以抛出不同的异常。
2、重写方法的规则:
①参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。
②返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。
③访问修饰符的限制一定要大于被重写方法的访问修饰符。
④重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。
三、类的关系上的区别:
重写是子类和父类之间的关系,是垂直关系;重载是同一个类中方法之间的关系,是水平关系。

方法重载和重写的区别

1.重写方法名、参数、返回值相同;重载参数类型、个数、顺序至少有一个不相同。
2.重写存在于父类和子类之间;重载存在于父类和子类、同类中。
2.重写发生在一个类中;重载发生在继承类中。
4.被重写的方法不能拥有更严格的权限;重载对权限没有要求。
扩展资料:
重载,简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
在C#中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
参考资料:重载搜狗百科重写搜狗百科
重载:重载字面意思多次的意思,也就是同一个方法实现多个不同的逻辑,并可以在同一个类中可以实现。其实现的原理是,方法名相同,参数的个数或者类型不同即可。
重写:重写就是要重新去写(实现),一个类中不可能两个定义一样的方法。因此,重写就是子类对父类定义的方法重新实现一次。
扩展资料
一、方法重载的具体规范:
1、必须具有不同的参数列表;
2、可以有不同的返回类型,只要参数列表不同就可以了;
3、可以有不同的访问修饰符;
4、可以抛出不同的异常。
二、方法重写的具体规范:
1、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载;
2、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载;
3、访问修饰符的限制一定要大于被重写方法的访问修饰符号、(public>protected>default>private);
4、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。
参考资料:搜狗百科——方法重载搜狗百科——方法重写

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

1.重写方法名、参数、返回值相同;重载参数类型、个数、顺序至少有一个不相同。
2.重写存在于父类和子类之间;重载存在于父类和子类、同类中。
2.重写发生在一个类中;重载发生在继承类中。
4.被重写的方法不能拥有更严格的权限;重载对权限没有要求。
扩展资料:
重载,简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
在C#中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
参考资料:重载搜狗百科重写搜狗百科

方法重写和方法重载的区别?重载可以改变返回值类型吗? 注意事项是什么?

方法重写:
子类中出现和父类中一模一样的方法声明的方法。
方法重载:
同一个类中,出现方法名相同,参数列表不同的方法。
跟返回值无关。
重载可以改变返回值类型,因为他跟返回值无关。
重写注意事项:
(1)父类中的私有方法不可以被重写
(2)子类方法访问权限一定要大于父类的访问权限
(3)静态的方法只能被静态的方法重写,这个其实不能算对象的关系。

方法的重载与重写

选D,我来告诉你为什么
A,方法的重载和方法的重写有本质的区别,重写是重写父类的方法,直接覆盖父类的方法,而方法的重载是方法名相同,参数列表,返回值不同,所以错了
B,方法的重写必须出现在父子关系中,方法的重载必须在同一个类中(说反了)
C,描述错误,方法的返回值可以不一致,但参数列表必须不一致(也就是类型不同,参数个数不同)
方法重载:在一个类里面,相同功能乃至不同功能(必须是形式参数类型不同)的方法用同一个方法名来写的手段,例如
class A{
public void display(int a)
{System.out.println(“数字是”+a);}
publlic void display(char a)
{System.out.println(“字符是”+a);}
public void display(String s)
{System.out.println("字符串是"+s);}
}
这样一来,通过对不同类型的参数对比,java就能自动选用合适的方法,而不用分别声明。
/////////////////////////////////////////
方法重写:父类有方法A,子类为实现自身特殊化需求,对父类的方法进行改写的手段,也是同名,区别是一个是父类的方法,一个是子类的方法(参数也要一样)。例如
class A{
public void display(int a)
{System.out.println(“数字是”+a);}
publlic void display(char a)
{System.out.println(“字符是”+a);}
public void display(String s)
{System.out.println("字符串是"+s);}
}
class B extends A
{
public void display(int a)
{
System.out.println(a+1);
}
}
这样以来,对整型数,A将它显示出来,B将它加1再显示出来。大体上就是这个 意思。
具体还有一些需要注意的地方:
对于方法重写:
(1) 子类的方法的名称及参数必须和所覆盖的方法相同
(2) 子类的方法返回类型必须和所覆盖的方法相同
(3) 子类方法不能缩小所覆盖方法的访问权限
(4) 子类方法不能抛出比所覆盖方法更多的异常
对于方法重载:
(1) 方法名必须相同
(2) 方法的参数名必须相同
(3) 方法的返回类型和方法的修饰符可以不相同
这样可以么?
1、重载: 方法名相同,参数列表不同 。 重载是一个类里面,写了多了同名的方法,各个方法的返回值类型可以不一样。要注意区分重载方法可以通过参数列表的个数,类型和顺序。但是不推荐用顺序来进行重载,这会让代码可读性极差。
2、重写: 也叫覆盖,指在子类中定义一个与父类中方法同名同参数列表的方法。因为子类会继承父类的方法,而重写就是将从父类继承过来的方法重新定义一次,重新填写方法中的代码。重写一般是指父类和子类之间,子类重写了父类的一个方法,当然方法名是一样的,而且不能改变父类方法的返回值,比如说父类是返回String,子类重写了这个方法,想返回一个int,那是不行的,也得返回String。

方法重载与重写相同点与不同点

方法重载:
①.方法名必须相同
②.参数列表必须不同
③.返回值可以相同、也可以不同
④.其他修饰符可以相同、也可以不同
⑤.可以抛出不同异常

方法重写:
①.方法名、参数列表、返回值都必须相同
②.访问修饰符必须大于或等于被重写方法
③.非静态方法不能被重写成静态方法
④.当父类中有private修饰方法,即使子类有同名方法,也不是重写

方法重载和重写的区别

方法重载:
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数不同的方法。
重写:
在C#中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
重写与重载的区别在于:
重写多态性起作用,对调用被重载过的方法可以大大减少代码的输入量,同一个方法名只要往里面传递不同的参数就可以拥有不同的功能或返回值。用好重写和重载可以设计一个结构清晰而简洁的类,可以说重写和重载在编写代码过程中的作用非同一般.
扩展资料:
C语言:
C#旨在设计成为一种“简单、现代、通用”,以及面向对象的程序设计语言,此种语言的实现,应提供对于以下软件工程要素的支持:强类型检查、数组维度检查、未初始化的变量引用检测、自动垃圾收集(Garbage Collection,指一种自动内存释放技术)。软件必须做到强大、持久,并具有较强的编程生产力。
为使程序员容易迁移到这种语言,源代码的可移植性十分重要,尤其是对于那些已熟悉C和C++的程序员而言。对国际化的支持非常重要。C#适合为独立和嵌入式的系统编写程序,从使用复杂操作系统的大型系统到特定应用的小型系统均适用。
参考资料:百度百科-方法重载
百度百科-重写
重载:重载字面意思多次的意思,也就是同一个方法实现多个不同的逻辑,并可以在同一个类中可以实现。其实现的原理是,方法名相同,参数的个数或者类型不同即可。
重写:重写就是要重新去写(实现),一个类中不可能两个定义一样的方法。因此,重写就是子类对父类定义的方法重新实现一次。
扩展资料
一、方法重载的具体规范:
1、必须具有不同的参数列表;
2、可以有不同的返回类型,只要参数列表不同就可以了;
3、可以有不同的访问修饰符;
4、可以抛出不同的异常。
二、方法重写的具体规范:
1、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载;
2、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载;
3、访问修饰符的限制一定要大于被重写方法的访问修饰符号、(public>protected>default>private);
4、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。
参考资料:百度百科——方法重载百度百科——方法重写
1.重写方法名、参数、返回值相同;重载参数类型、个数、顺序至少有一个不相同。
2.重写存在于父类和子类之间;重载存在于父类和子类、同类中。
2.重写发生在一个类中;重载发生在继承类中。
4.被重写的方法不能拥有更严格的权限;重载对权限没有要求。
扩展资料:
重载,简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
在C#中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
参考资料:重载百度百科 重写百度百科
两者的区别是条件不同:
重载的条件:
1.必须在同一个类中
2.方法名必须相同
3.参数列表不能相同。
重写的条件:
1. 在不同的类中
2. 发生方法重写的两个方法返回值,方法名,参数列表必须完全一致
3. 子类抛出的异常不能超过父类相应的方法抛出的异常
4. 子类方法的访问级别不能低于父类相应方法的访问级别(public,package,protected, private)
5.方法体不同 super()调用父类构造,super.只能调用父类的实例方法 this()调用该类的其他构造方法,this.调用类的属性,方法 如果父类有有参构造,子类必须定义构造方法。
扩展资料:
1、重写方法的规则:
(1) 参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载。
(2)返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。
(3)访问修饰符的限制一定要大于被重写方法的访问修饰符。(public>protected>default>private)
(4)重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。
例如, 父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常.   
2、重载方法的规则:   
(1)必须具有不同的参数列表;   
(2)可以有不同的返回类型,只要参数列表不同就可以了;   
(3)可以有不同的访问修饰符;   
(4)可以抛出不同的异常;
参考资料:百度百科-重载
百度百科-重写
1.重写必须继承,重载不用。
2.重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同。
3.重写的方法修饰符大于等于父类的方法,重载和修饰符无关。
4.重写不可以抛出父类没有抛出的一般异常,可以抛出运行时异常
Overload是重载的意思,表示在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可,Override是覆盖的意思,也就是重写,它与返回值类型无关,只看参数列表,两者不同主要体现在:目的不同、范围不同、参数不同、多态性不同、返回类型不同。
1、目的不同
overload用于增加程序的可读性(做法不同,但是做的同一事情)。 override用于提供其超级类已经提供的方法的特定实现。
2、范围不同
overload 在相同的类范围内内执行。 override发生在两类具有继承(继承)的关系。
3、参数不同
overload参数必须不同。 override参数必须相同。
4、多态性不同
overload 静态多态,调用的函数在编译时被选中。 override 是运行时多态性的。
5、返回类型不同
overload中可以相同或不同。但你必须改变参数。 override必须是相同的或协变的。
参考资料来源:
百度百科-overload
百度百科-override

阅读更多 >>>  朱顶红万能生根法

重写和重载的区别

重载和重写的区别有以下几点:
一、定义上的区别:
1、重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。调用的时候根据函数的参数来区别不同的函数。
2、覆盖(也叫重写)是指在派生类中重新对基类中的虚函数(注意是虚函数)重新实现。即函数名和参数都一样,只是函数的实现体不一样。
二、规则上的不同:
1、重载的规则:
①必须具有不同的参数列表。
②可以有不同的访问修饰符。
③可以抛出不同的异常。
2、重写方法的规则:
①参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。
②返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。
③访问修饰符的限制一定要大于被重写方法的访问修饰符。
④重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。
三、类的关系上的区别:
重写是子类和父类之间的关系,是垂直关系;重载是同一个类中方法之间的关系,是水平关系。
重写和重载的区别
一、规则不同
1、重载规则:
①必须具有不同的参数列表。
②可以有不同的访问修饰符。
③可以抛出不同的异常。
2、重写规则:
①参数列表必须完全与被重写的方法相同。
②返回的类型必须一直与被重写的方法的返回类型相同。
③访问修饰符的限制一定要大于被重写方法的访问修饰符。
④一定不能抛出新的检查异常或者比道被重写方法申明更加宽泛的检查型异常。
二、类的关系不同
重写是子类和父类之间的关系,是垂直关系。
重载是同一个类中方法之间的关系,是水平关系。
函数重载的应用
(1)类的构造函数,通常就是函数重载的典型应用。因为一个类通常是可以有很多种构造方式的。
如QT里面的QString类的构造函数,提供了9种不同的构造函数,这9种构造函数的函数名完全相同,但是它们的参数类型或参数个数却不完全相同,因此是合法的。
(2)类的成员函数,如赋值函数等。
如VTK的vtkImageData类的两个成员函数就是重载的。

网站数据信息

"方法重载和方法重写,方法重写和方法重载的区别?重载可以改变返回值类型吗? 注意事项是什么?"浏览人数已经达到21次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:方法重载和方法重写,方法重写和方法重载的区别?重载可以改变返回值类型吗? 注意事项是什么?的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!