今天就不写引言了,直奔主题。。。
重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。最常用的地方就是构造器的重载。
重载其实就是定义很多个方法名相同,但参数列表不相同的方法,然后系统自动根据调用该方法时给定的参数类型和数量选择适合的方法,最简单的例子plus,有一个叫做plus的方法,用于将两个数相加,允许是整数int或小数double类型,那么就可以用重载实现了:
xxxxxxxxxx
class father{
public double plus(double value1,double value2){
System.out.println("调用的是小数方法");
return value1+value2;
}
public int plus(int value1,int value2){
System.out.println("调用的是整数方法");
return value1+value2;
}
}
运行结果如图:
正如引用内容所说,重载常用于构造方法,根据输入的参数不同,自动选择合适的构造方法初始化对象。
重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。
重写的概念也没有引用内容所说的这么复杂,其实就是"个性化定制需求",根据需要可以选择进行重写,也即进行定制,使某一个方法适合或更适合我们的需要。重写的前提是继承。
方法重写的示例,父类中定义了prinln打印换行的方法,但是我不想换行,遂在子类中进行重写:
xxxxxxxxxx
<}
运行结果:
而子类中没有进行过重写的方法input
则不受影响,如图所示:
说明:代码中的Scanner是Java的一个内置类,用于从控制台获取用户的输入,控制台中蓝色的字体即为用户输入的内容,使用Scanner类需要引入包import java.util.Scanner;
。
}
}