4.方法的重载
2025年09月21日
4.方法的重载
Rectangle类中有两个构造方法,这两个构造方法在调用的时候是不会有冲突的,虽然方法名相同,但是参数列表不同,调用的时候可根据实参列表来确定调用哪一个。
同样,除了构造方法外,其他的方法也可以提供若干个方法名相同而参数列表不同的方法,我们把这些方法叫作重载方法。例如,String类提供了求子串方法:
substring(int beginIndex,int endIndex):截取下标从beginIndex到endIndex的子串。
substring(int beginIndex):截取下标从beginIndex到结尾的子串。
上述两个方法就是重载方法,方法名相同但是参数列表不同,在调用的时候完全不会出现冲突。由于这两个方法的功能是一样的,所以应该用相同的名字,但是它们实现调用的方式又不同,两者通过参数列表来区别。注意,方法的返回值类型和方法头部的修饰符是与重载无关的,因为它们在调用的时候不能用来确定调用的重载方法。
【代码15.4】重载例程
重载方法要求参数列表一定要不相同,可以是参数个数不同,参数的类型不同,参数的顺序不同。例如,下面是成立的重载方法。
·go(double)和go(double,double):参数的个数不同。
·go(double,double)和go(String,String):参数的类型不同。
·go(double,String)和go(String,double):参数的顺序不同。
但是,如下的方法就不能构成正确的重载。
·go(int)和go(double)。
·go(double,int)和go(int,double)。