重载发生在同一个类中,方法名相同,参数类型、个数、顺序不同;与返回值类型、访问修饰符(public,private等关键字)无关。
覆盖(override) 也叫重写、覆写在继承关系中,方法名称与参数列表都一样。 注意事项:@override写在方法前面,用来检测是不是有效的正确覆盖重写。
代码实现:
public class Fu{
public void method() {
System.out.println ("这是父类方法");
}
}
public class Zi extends Fu{
@override
public void method() { //若method更改,@override将报错
System.out.println ("这是子类方法");
}
}
那么方法的覆盖重写有什么用呢? 看例子:
老款手机当成父类,新款手机当成子类。打电话(call)、发短信(sendMessage)、来电显示(show)各个都对应一个方法。当show方法出现了更新,要添加内容时,就用到了覆盖重写.
public class oldPhone {
public void call(){
System.out.println("打电话");
}
public void sendMessage(){
System.out.println("发短信");
}
public void show(){
System.out.println("显示号码");
}
public class newPhone extends oldPhone{
@Override
public void show(){
super.show(); //相当于System.out.println("显示号码"),但更简洁
System.out.println("显示姓名");
System.out.println("显示头像");
}
var phone = new newPhone();
phone.call();
phone.sendMessage();
phone.show();



