Java 實例 - 方法覆蓋
前面章節中我們已經學習了 Java 方法的重載,本文我們來看下 Java 方法覆蓋的實現。
方法重載與方法覆蓋區別如下:
- 方法重載(Overloading):如果有兩個方法的方法名相同,但參數不一致,哪麼可以說一個方法是另一個方法的重載。
- 方法覆蓋(Overriding):如果在子類中定義一個方法,其名稱、返回類型及參數簽名正好與父類中某個方法的名稱、返回類型及參數簽名相匹配,那麼可以說,子類的方法覆蓋了父類的方法。
以下實例演示了 Java 方法覆蓋(Overriding)代碼的實現:
Findareas.java 檔
public class Findareas{
public static void main (String []agrs){
Figure f= new Figure(10 , 10);
Rectangle r= new Rectangle(9 , 5);
Figure figref;
figref=f;
System.out.println("Area is :"+figref.area());
figref=r;
System.out.println("Area is :"+figref.area());
}
}
class Figure{
double dim1;
double dim2;
Figure(double a , double b) {
dim1=a;
dim2=b;
}
Double area() {
System.out.println("Inside area for figure.");
return(dim1*dim2);
}
}
class Rectangle extends Figure {
Rectangle(double a, double b) {
super(a ,b);
}
Double area() {
System.out.println("Inside area for rectangle.");
return(dim1*dim2);
}
}
以上代碼運行輸出結果為:
Inside area for figure. Area is :100.0 Inside area for rectangle. Area is :45.0