❶ 什么叫函数重载
函数重载是一个同名函数完成不同的功能,编译系统在编译阶段通过函数参数个数、参数类型不同,函数的返回值来区分该调用哪一个函数,即实现的是静态的多态性。但是记住:不能仅仅通过函数返回值不同来实现函数重载。
重载函数的多义性无法确定,直到遇到函数调用。 此时,将为函数调用中的每个参数生成集,并且可以确定是否存在明确的重载。 这意味着,多义性可保持在您的代码中,直到它们由特定函数调用引发。
参数类型差异
重载函数区分使用不同的初始值设定项的参数类型。 因此,对于重载而言,给定类型的参数和对该类型的引用将视为相同。 由于它们采用相同的初始值设定项,因此它们被视为是相同的。 例如,max( double, double )被视为与max( double &, double & )相同。 声明两个此类函数会导致错误。
出于同一原因,对由const或volatile修改的类型的函数参数(出于重载的目的)的处理方式与基类没有什么不同。
但是,函数重载机制可以区分由const和volatile限定的引用和对基类型的引用。
❷ 简述什么是方法的重载,及什么是方法的覆盖。二者的区别是什么
方法重载就是方法的参数不同
方法覆盖就是方法的声明和参数都一致
例如
class A
{
public void a()
{
}
}
class B
{
int i;
public void a(int i) //对类A的a()方法的重载
{
this.i=i;
}
public void a() //对类A的a()方法的覆盖
{
System.out.println("a()");
}
}
❸ 什么是方法重载方法重载的规则是什么
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数或参数的顺序不同的方法。
一、方法名一定要相同。
二、方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。
1、如果参数个数不同,就不管它的参数类型了!
2、如果参数个数相同,那么参数的类型必须不同。
三、方法的返回类型、修饰符可以相同,也可不同。
(3)什么是重载方法扩展阅读:
Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同。
调用方法时通过传递给它们的不同个数和类型的参数,以及传入参数的顺序来决定具体使用哪个方法。
❹ 什么是 重载 为什么要重载有何特点
一。重载就是多个方法使用一个方法名,但是参数的个数或类型不同,但他们的作用一般是相同的 。
二。可以通过传递不同的参数实现相同的效果。
三。发生在两个或者是更多的函数具有相同的名字的情况下。
❺ 重载是什么意思
重载,在一个类定义中,可以编写几个同名的方法,但是只要它们的签名参数列表不同,Java就会将它们看做唯一的方法。简单的说,一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法。
❻ 解释什么是方法重载和方法重写,并说出它们的作用
【重载】是指在一个类里面可以有多个方法名字相同的不同方法。但是方法的参数个数,顺序,不能相同,否则如何区分调用这些方法。
[作用]方便使用,如
System.out.print("It works.");
System.out.print(123456);//
这样你就可以直接调用而不用去管参数的具体类型,系统会根据你传递过去的参数,去调用相应的方法。(print(int arg)或者print(String arg))
【重写】是发生在当一个子类继承一个父类的时候,可以重写覆盖原来父类里面的方法(当然你也可以这几调用),当然这个方法和父类的方法名称一定要相同,参数也要相同,不然就不叫重写了。注意:有final修饰的方法不可以重写。
[作用]做你想做的,而不必大动干戈,加快开发。
你可以修改任何允许重载的类的方法,来达到你的目的,而不必重新写一个类。
如:
public class Father {
public void who() {
System.out.print("I am father");
}
}
public class Son extends Father {
public void who() {
System.out.print("I am the son");
}
public static void main(String args[]) {
Father f=new Father();
f.who();
Son s=new Son();
s.who();
}
}
最后作点补充:你也可以重载父类里面的方法。
❼ 简述什么是方法重载方法重载必须具备什么样的条件
方法重载就是在一个类里面有方法的名字是一样的,但是方法的参数不同,可以是参数类型不同也可以是参数的个数不同。给你举个例子吧
class Area
{
float getArea(float r){
return 3.14*f*r;
}
double getArea(float x,int y){
return x*y;
}
float getArea(int x,float y){
return x*y;
}
double getArea(float x,float y,float z){
return (x*x+y*y+z*z)*2.0;
}
//还可以有其他的变量和方法什么的……我就不多写了……
}
注:方法的返回类型和参数的名字不参与比较,也就是说如果两个方法的名字相同,即使类型不同,也必须保证参数不同。
方法重载的好处就在于当你调用方法的时候可以通过你传入的参数的类型自动匹配方法,也就是为了突出面向对象的特点。
不晓得你明白了否……
❽ 什么是重载
你在街上一个咖啡厅偶遇了她,一场轰轰烈烈的感情在你们两个身上发生。如今十年过去了,你在那个咖啡厅再次偶遇上了她,你突然发现原来现在你对她已经没啥感觉。
虽然是同样的人,同样的地方!但你的感情却变了,你的感情在这里被重载了。
明白了把,重载就是对于同一个概念,同一个操作,因为条件不同而生成了不同的结果,或者多了一些东西,或者少了一些东西,或者根本就完全不同
1+1=2
a+b=ab
一堆沙+一堆沙=一堆沙。
同样都是“+”,结果是不一样的
ps:对于ls讲重载效率低下,个人是不同意的,泛型编程的基础就是重载,而泛型编程通常效率是很高的。当然这和泛型的机制有关,不过至少重侧面说明效率低,并不是以为使用了重载,而是程序本身的运行机制决定了效率
❾ 什么是方法重载
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。