java构造方法可以重载吗

问题描述:

java构造方法可以重载吗
1个回答 分类:java 2024-04-16 02:23:14

问题解答:

我来补答

JAVA中构造函数可以重载?C#中呢?
Java中的构造函数可以重载,C#中的构造函数也可以重载。 它们都是面向对象的语言。 面向对象语言的特点是封装性、继承性和多态性。
java构造方法重载

方法重载:

1.必须在同一个类中

2.方法名称相同

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


注意:

1、参数顺序是指参数类型的顺序,没有什么与参数名称有关,像show(inta,,Stringa,intc)和show(intc,Stringb,inta)是同一个方法,非方法重载,因为它们的参数类型顺序与int,String相同,int


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


调用:


1、调用时,填写方法参数时,会自动判断参数类型以及参数类型的顺序和数字,然后在匹配时调用重载方法。 如果没有找到重载方法,会直接编译错误


示例:


方法1.show()

方法2.show(inta,intb)

方法3.show(inta,Stringb)

方法4.show(Stringb,inta)

方法5.show(intb,inta)


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.iftest(inti,Strings){}test(Strings,inti){

那么这两个构造函数被重载,不会出现编译错误,因为参数类型的顺序不同,第一个构造函数的参数类型的顺序是int和String,第二个构造函数的参数类型的顺序是字符串,整数

剩余:2000