其实我一直有个问题,public Telphone();。是如何调用方法的,如果当俩个方法都是无参或有参,它是如何分辨是方法1还是方法2的,我指的是运作过程。是按照调用顺序调用1对应方法1吗?
函数重载,方法名一样,系统会有一个默认的无参函数,如果有一个函数为有参函数,调用哪个取决于参数的类型,对号入座
无参的时候是调用方法1的,有参的时候是调用方法2的。这个实际上应该属于方法重写(最终调用哪个方法具体还是看参数的不同的)。比如说 Telphone tel=new Telphone(); 调用的方法1。而 Telphone tel=new Telphone(1.1f,1.2f,3.4f); 则调用了方法2。具体调用哪个构造方法还是看参数的。
不传参时,默认调用无参构造方法;传参时,会根据你传过去的参数类型,参数个数,进行分辨;
如: 1.public Telphone(){//代码} ; 2.public Telphone(int a){//代码} ;3.public Telphone(int a,int b){//代码} ;
4.public Telphone(String a,int b){//代码} ;
Telphone i = new Telphone(); 什么不传默认调用第1个构成函数
Telphone i = new Telphone(12,13); 传了两个int类型的参数,调用第3个构成函数
Telphone i = new Telphone("你好",13);传入一个String类型和Int类型参数,调用第4个构成函数
这涉及到了方法的重载
方法名相同,参数类型,个数不同