繼承跟多型的區別

  在計算機語言中有一種是JAVA的語言,裡面有一些方法,繼承,過載,重寫。下面是小編為你整理的,供大家閱覽!

  過載,繼承,重寫和多型的區別:

  繼承是子類獲得父類的成員,重寫是繼承後重新實現父類的方法。

  過載是在一個類裡一系列引數不同名字相同的方法。

  多型則是為了避免在父類裡大量過載引起程式碼臃腫且難於維護。

  網上看到一個有趣的說法是:繼承是子類使用父類的方法,而多型則是父類使用子類的方法。

  下面的例子包含了這四種實現:

  class Triangle extends Shape {

  public int getSides****** { //重寫

  return 3;

  }

  }

  class Rectangle extends Shape {

  public int getSides***int i*** { //過載

  return i;

  }

  }

  public class Shape {

  public boolean isSharp******{

  return true;

  }

  public int getSides******{

  return 0 ;

  }

  public int getSides***Triangle tri***{

  return 3 ;

  }

  public int getSides***Rectangle rec***{

  return 4 ;

  }

  public static void main***String[] args*** {

  Triangle tri = new Triangle******; //繼承

  System.out.println***"Triangle is a type of sharp? " + tri.isSharp*********;

  Shape shape = new Triangle******; //多型

  System.out.println***"My shape has " + shape.getSides****** + " sides."***;

  }

  }

  注意Triangle類的方法是重寫,而Rectangle類的方法是過載。

  比較就可以發現多型對過載的優點:如果用過載,

  則在父類裡要對應每一個子類都過載一個取得邊數的方法;如果用多型,

  則父類只提供取得邊數的介面,至於取得哪個形狀的邊數,怎樣取得,

  在子類裡各自實現***重寫***。