java 构造方法重载

如果有两个构造方法,它们都只有两个参数,比如
test1(int i,String s){} test2(String s,int i){}
它们的参数交换了位置,这样算是重载吗?编译可以通过吗?

方法重载:

  1.必须在同一个类

  2.方法名相同

  3.方法参数个数或参数类型(或参数顺序)不同


注:

  1.参数顺序指的是参数类型顺序,与参数名字无关,比如show(int a,,Stringa,int c)和show(int      c,String b,int a)是一样的方法,非方法重载,因为他们的参数类型顺序一样是int,String,int


  2.方法重载与访问权限修饰符和方法返回值无关


调用:


  1.当调用的时候,填好方法参数时,它会自动判断参数类型,参数类型顺序,个数,然后再调用相应的重载      方法,当匹配不到相应的重载方法,那么直接编译错误


例子:


    方法1. show()

    方法2. show(int a,int b)

    方法3. show(int a,String b)

    方法4. show(String b,int a)

    方法5. show(int b,int a)


   1. 方法1.2.3.4是重载方法(1与[234]参数个数不同,2与[34]参数类型不同,3与[4]参数类型顺序不同)

   2. 方法1.3.4.5是重载方法(1与[534]参数个数不同,5与[34]参数类型不同,3与[4]参数类型顺序不同)

   3. 方法2和5非方法重载,因为参数类型顺序一样,跟参数名字无关

   4. 以方法1.2.3.4为例,show()会调用方法1,show(1,1)会调用方法2,show(1,"1")会调用方法3

      show("1",1)会调用方法4



----------------------------------------------------------------------------------------------------------------

    你两个方法名分别是test1,test2,方法名不同,肯定不是方法重载,而且构造方法名必须跟类名一样,不可能出现不同名的构造方法


 2.假如test(int i,String s){}       test(String s,int i){}

    那么这2个构造方法是重载,不会出现编译错误,因为参数类型顺序不同,第一个构造方法参数类型顺序是int,String,第二个构造方法参数类型顺序是String,int 

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-02
楼主问题的重点应该不在他所写的两个方法名相同与否上,应该主要指方法参数顺序不同是否构成重载,我的回答是:是重载,类似普通的成员方法,当参数个数,类型,顺序不同时,便构成重载。
第2个回答  2013-04-12
无论是构造方法还是普通方法
区别2个方法是否相同要看2个方面,方法名和参数

普通方法:方法名不同。

重载方法:方法名相同,参数不同(可以是参数个数或者参数类型)。

调用的重载方法的时候会根据传入的参数类型判断使用哪个方法。

就你的代码而言
new classWuMingFen("ma", 1); //就是调用classWuMingFen(String ma,int qtity)这个构造方法
new classWuMingFen(“ma”,1,true); //就是调用classWuMingFen(String thema,int Quantity,boolean likesoup)这个构造方法
第3个回答  2013-08-02
class A{
test1(int i,String s){}
}

class B extends A{
test2(String s,int i){}
}

不是重载。因为方法名也不同了,两个没什么关系的方法。
第4个回答  2018-03-31

需要在java进行一下操作:

public class apple{public int apple(int a)}
return a

private string apple(string k){return k}


一、Java:

    是一种可以撰写跨平台应用软件的面向对象的程序设计语言;

    Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

二、Java由四方面组成:

    Java编程语言,即语法;

    Java文件格式,即各种文件夹、文件的后缀;

    Java虚拟机(JVM),即处理*.class文件的解释器;

    Java应用程序接口(Java API)。

本回答被网友采纳

java 构造方法重载
1.参数顺序指的是参数类型顺序,与参数名字无关,比如show(int a,,Stringa,int c)和show(int c,String b,int a)是一样的方法,非方法重载,因为他们的参数类型顺序一样是int,String,int 2.方法重载与访问权限修饰符和方法返回值无关 调用:1.当调用的时候,填好方法参数时,它会自动判断参...

java中关于构造器构造函数构造方法重载方法的困惑
就要进行方法重载: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()是将整形转化为字符串的方法;\/\/+号是方法名;---...

什么是Java方法重载
1、方法重载简单讲就是相同的方法名,参数不一样。我们在一个类里先创建一个zn的方法,参数接受的是一个数值型的。2、同样在这个类里,再创建一个方法,名字也叫zn,但参数接受的是一个字符串弄的。3、除了参数接受的数据类型不一样,也可以参数数量不一样,也能构成方法重载。4、重载的方法,我...

java语言中构造方法和方法重载在什么时候使用?有什么作用?请详细说明一...
第二个,方法重载,overload,是同名不同参数的方法。用于方法功能相同或基本相近,参数类型不同的。比如计算面积,计算圆和计算矩形功能类似,可以通过相同名称和不同参数来实现。一楼的哥们说的是重写,override,子类继承父类同名方法,用于多态的。

构造方法何时被调用
创建对象时,构造方法被调用。构造方法是一种特殊的方法,它是一个与类同名的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。在Java中,任何变量在被使用前都必须先设置初值,如无显式赋值,则编译...

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

java方法重载是指一个类中的,方法重写是不同类中的,对吗?
方法重载支持多态性,因为它是java实现"一个接口,多重方法"模式的一种方式。此外,构造方法也可以被重载。什么是方法重写:在类体系结构中,当子类中的方法与其父类中的方法具有相同的方法时,则认为子类中的方法重写了父类中的方法。从子类中调用重写方法时,将总是调用出现在子类中的方法,而父类中...

【java系列】java之重写和重载的区别
重载的关键点在于参数列表的差异,包括参数类型、数量或顺序的不同,与返回值及访问修饰符无关。重写则关注方法名、参数列表的匹配,返回值类型、异常类型可以与父类不同,但访问修饰符要求子类至少不低于父类的限制,遵循里氏替换原则。若父类方法的访问修饰符为private,子类则无法重写,因为private方法仅...

一个类中能有多重构造方法吗
构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。在Java中,任何变量在被使用前都必须先设置初值.Java提供了为类的成员变量赋初值的专门功能:构造方法(constructor)构造方法是一种特殊的...

java构造函数重载错误…求问
构造函数都没有返回值,参数数量一样,类型一样,那么这就是同一个函数,一个类中,一个函数被定义两次是不行的,不能通过编译。构造函数当然可以重载,这种问题你自己可以试试看。

相似回答