java中什么叫覆盖Override?请给实例
5.覆盖(Override)
马克-to-win:方法的覆盖(Override)是指子类重写从父类继承来的一个同名方法(参数、返回值也同)。
例1.5.1--
class AAAMark_to_win {
double f(double x, double y) {
return x * y;
}
}
class BBB extends AAAMark_to_win {
double f(double x, double yMark_to_win)
/*注意这里的返回值必须为double,如返回int值,
我试过报错,因为sun公司不出这个语法,他没法办,
到时obj.f(4,6)不知道调用基类还是本类的方法。
*/
{
return x + yMark_to_win;
}
}
public class Test {
public static void main(String args[]) {
AAAMark_to_win a = new AAAMark_to_win();
System.out.println(a.f(4, 6));
BBB obj = new BBB();
System.out.println(obj.f(4, 6));
}
}
例1.5.2---
class AAAMark_to_win {
double f(double x, double yMark_to_win) {
return x * yMark_to_win;
}
}
class BBB extends AAAMark_to_win {
double f(double x, double y) {
return x + y;
}
}
public class Test {
public static void main(String args[]) {
AAAMark_to_win a = new AAAMark_to_win();
System.out.println(a.f(4, 6));
BBB obj = new BBB();
System.out.println(obj.f(4, 6));
/* 基类指针指向子类或说派生类效果就像子类指针指是一样的,为什么?马克-to-win:因为new BBB();时,BBB的属性的内存空间也被开辟了。只是语法上允许“基类指针指向派生类”
*/
AAAMark_to_win obj1 = new BBB();
System.out.println(obj1.f(4, 6));
}
}
更多内容请见原文,文章转载自:https://blog.csdn.net/qq_44639795/article/details/103118765