// 首先,我们创建了一个手机叫Phone
public class Phone {
// 这里给旧手机一个String类型的返回值, 但是我们就返回一个null值。
public String show() {
System.out.println("这是个旧手机");
return null;
}
}
// 然后,创建一个新手机作为Phone的子类
// 重载,方法名称一样,但是,方法的参数和返回值不一样。
public class NewPhone extends Phone {
// 这里给它一个int返回值,和一个int类型的参数
public int show(int num) {
System.out.println("这是个新手机" + num);
return 0;
}
}
public static void main(String[] args) {
// 创建一个旧手机对象
Phone phone = new Phone();
// 创建一个新手机对象
NewPhone newPhone = new NewPhone();
phone.show(); // 这是个旧手机
newPhone.show(); // 这是个旧手机
newPhone.show(1); // 这是个新手机1
// 虽然编译结果看似是同名方法实现了重载,其实不然。
/* 这并不是方法重载(Overload)
之所以newPhone.show可以寻到父类Phone中的show()方法。
是因为这就是两个类中的方法,一个存在子类中,另一个存在父类中。
因为,子类中的参数不同,就直接向上一级的父类中寻找show()方法,看似重载其实不然
*/
}
-。-想了蛮久,不知道对不对,有错误的请指点。