在Java的使用中,我们有时会写出多个功能类似的方法,为了方便调用,我们通常会把他们的方法名写成一个,像这样,方法名相同,实现功能类似但是参数不同的一类方法,我们把这种方法叫做方法重载,为了方便大家理解,写出代码块如下:
class pencil{
public pencil() {
System.out.println("这是一支笔");
}
public pencil(int sum) {
System.out.println("这是一支笔,价值为:"+sum);
}
public pencil(String address) {
System.out.println("这是一支笔,产地为"+address);
}
}
图中pencil方法就是方法重载,方法名相同,参数不同,但功能类似,都是输出语句。使用时请注意各个方法的返回值类型应当相同。
在继承关系中,如果子类定义了一个与父类方法签名完全相同的方法, 我们把子类中定义为的方法叫做方法重写。重写是为了增强类的重用性和复用性,扩展性,重写是对类中方法的扩充,因为继承用的是父类的东西,重写则不仅得到父类的东西,同时也加入了别的方法,两全其美。
public class Dome01 { public static void main(String[] args) { Teacher dm=new Student(); dm.Method(); System.out.println(); } } //Teacher为父类 class Teacher{ public void Method() { System.out.println("hello,world"); } } //Student为子类,继承Teacher父类 class Student extends Teacher{ @Override //用@ovreride可以让编译器检查是否正确复写,以免编写者出现错误 public void Method() { System.out.println("hello,world"); System.out.println("I am coming"); //直接调用子类,就可以输出父类的hello,world,还可以输出I am coming } }
在jdk1.5以后,返回值类型可以与父类相同,也可以与父类不同,但是要求返回值类型是父类的子类。
利用方法重写时,一定要保证方法签名(方法名 ,参数,返回值类型)相同 ,由于在编写时易出错,故可以让@Override出现在子类方法上一行,让编译器帮助我们检查是否一致。
与诸君共勉。