java中,方法重载和构造器重载一样吗?

如题所述

在使用new创建对象时,Java会根据提供的参数来决定构建哪一个构造器。比如在构建neZha时,我们提供了两个参数: 整数150和字符串"shit",这对应第二个构建方法的参数列表,所以Java会调用第二个构建方法。
在Java中,Java会同时根据方法名和参数列表来决定所要调用的方法,这叫做方法重载(method overloading)。构建方法可以进行重载,普通方法也可以重载,比如下面的breath()方法:

public class Test
{
public static void main(String[] args)
{
Human aPerson = new Human();
aPerson.breath(10);
}

}

class Human
{
/**
* breath() 1
*/
void breath()
{
System.out.println("hu...hu...");
}

/**
* breath() 2
*/
void breath(int rep)
{
int i;
for(i = 0; i < rep; i++) {
System.out.println("lu...lu...");
}
}

int height;
}

运行结果:
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...

可以看到,由于在调用的时候提供了一个参数: 整数10,所以调用的是参数列表与之相符的第二个breath()方法。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-11
方法重载就是同一个类中有2个或者2个以上的方法名相同,参数不通的方法,和返回类型没有关系。而构造器就是必须和类名相同,参数可有可无的,构造器没有返回值,但是实际构造方法不就是构造一个实体本身吗。
第2个回答  2012-07-11
构造函数可以说就是一个构造器.是用来初始对象用的.
你上面说的show(x,y)和show()如果返回值一样就可以说是一个方法重载.
举个例子来说下重载吧.
比如说你要将一个字符串和一个整形的数据加起来形成一个字符串.(假设+号默认只能连接两个字符串).这时你就要对+号声明方法:public String +(String s ,int i){}.又如果你想把两个整形的数据连接起来.
就要进行方法重载:public String +(inti ,int j){}.
方法一:
--------
public String +(String s ,int i){
return s+i.toString() ;
}
重载方法:
---------
public String +(inti ,int j){
return i.toString()+j.toString() ;
}
//其中toString()是将整形转化为字符串的方法;
//+号是方法名;
-------------
public String +(String s1,String s2);就叫做方法的声明.而{}内的就是方法体;
方法和函数只是一个名字的区别.叫法不一样而已.
第3个回答  2012-07-11
构造只是没有返回,别的一样追问

它们的方法名和类名都一样吗

第4个回答  2012-07-11
构造器名必须和类名一样,方法重载就没这个要求了本回答被提问者采纳

java中关于构造器构造函数构造方法重载方法的困惑
构造函数可以说就是一个构造器.是用来初始对象用的.你上面说的show(x,y)和show()如果返回值一样就可以说是一个方法重载.举个例子来说下重载吧.比如说你要将一个字符串和一个整形的数据加起来形成一个字符串.(假设+号默认只能连接两个字符串).这时你就要对+号声明方法:public String +(String s...

JAVA方法重写和重载的区别
1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数\/类型。重载是一个类中多态性的一种表现。2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数...

java基础面试题有哪些?
Java 中构造函数重载和方法重载很相似。可以为一个类创建多个构造函数。每一个构造函数必须有它自己唯一的参数列表。Java 不支持像 C++中那样的复制构造函数,这个不同点是因为如果你不自己写构造函数的情况下,Java 不会创建默认的复制构造函数。8.Java 中的方法覆盖(Overriding)和方法重载(Overloading)...

java中为什么要用方法重载
(1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时 存在,具有不同的参数个数\/类型。重载Overloading是一个类中多态性的一种表现。(2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具 有不同的参数和不同的定义。调用方法时通过传递给...

求程序员面试题
被声明为final的方法也同样只能使用,不能重载。 finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。 finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理...

哪里有java程序员面试题啊,谢谢
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类和子类之间多态性的一种表现,重载Overloading是个类中多态性的一种表现。如果在子类中定义某方法和其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对他而言,父类中的定义...

java程序员面试
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的...

北大青鸟设计培训:Java构造器和方法的区别?
构造函数(构造器)是一种特殊的函数。其主要功能是用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。构造函数与类名相同,可重载多个不同的构造函数。在JAVA语言中,构造函数与C++语言中的构造函数相同,JAVA语言中普遍称之为构造方法。java课程培训机构...

重载和重写傻傻分不清楚?看这一篇就够了
重载,方法的多样选择 与重写不同,重载是类内部的一种多态性体现,通过方法名相同但参数列表的差异(包括参数个数和类型)来区分。即使返回类型、异常类型和访问修饰符可以自由变化,重载的目的在于为用户提供多个接口,以适应不同的场景和需求,尤其是在构造器中常见这种形式的重载。面试问答:区分两者 在...

构造器能否被重写?能否被重载?能否被继承?
构造器就是构造方法,能够被重载(同类中不同参数列表的构造器),不能够被重写(子类使用super方法可以调用)。不能说能被继承,因为能够调用,但是不能重写。构造器最大的用处就是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化。如果想改变这种默认的初始化,就可以...

相似回答