重写(@Override)与重载(@Overload)
方法的重写和重载都是面向对象程序中多态的一种实现策略。他们都是发生在方法上
方法重写
在子类继承父类后,子类中存在与父类同名的方法,且方法中参数的个数,顺序,类型与必须一致,称为方法重写。
public class Animal{
public void eat(){
System.out.pritnln("吃饭");
}
}
public class Dog extends Animal{
@Override
public void eat(){
System.out.println("啃骨头");
}
}
这里子类重写父类方法后再次调用方法eat时均调用子类中重写的新方法“啃骨头”。
方法重载
方法的重载是面向对象程序多态的一种实现策略,表现是在同一个类中的多个同名方法的不同体现形式,与重写不同的是方法重载发生在同一个类或者存在继承关系的多个类中,重载必须要保证被重载方法参数类型,个数,顺序任意有一项与原方法是不一致的,
public class PrintDemo {
public void write(int i){
System.out.println(i);
}
public void write(double f){
System.out.println(f);
}
public void write(String s){
System.out.println(s);
}
public static void main(String[] args) {
PrintDemo pd = new PrintDemo();
pd.write(11.02);
pd.write("helloworld");
pd.write(11);
}
}
在重载中输入不同类型的参数会调用不同的方法,是多态的重要体现之一。