Java 實(shí)例 - 方法覆蓋

Java 實(shí)例 Java 實(shí)例

前面章節(jié)中我們已經(jīng)學(xué)習(xí)了 Java 方法的重寫,本文我們來(lái)看下 Java 方法覆蓋的實(shí)現(xiàn)。

方法重載與方法覆蓋區(qū)別如下:

  • 方法重載(Overloading):如果有兩個(gè)方法的方法名相同,但參數(shù)不一致,哪么可以說(shuō)一個(gè)方法是另一個(gè)方法的重載。
  • 方法覆蓋(Overriding):如果在子類中定義一個(gè)方法,其名稱、返回類型及參數(shù)簽名正好與父類中某個(gè)方法的名稱、返回類型及參數(shù)簽名相匹配,那么可以說(shuō),子類的方法覆蓋了父類的方法。

以下實(shí)例演示了 Java 方法覆蓋(Overriding)代碼的實(shí)現(xiàn):

/*
 author by w3cschool.cn
 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);
   }
}

以上代碼運(yùn)行輸出結(jié)果為:

Inside area for figure.
Area is :100.0
Inside area for rectangle.
Area is :45.0

Java 實(shí)例 Java 實(shí)例