程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> java中重載,繼承,重寫和多態的區別

java中重載,繼承,重寫和多態的區別

編輯:JAVA編程入門知識

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

1)繼承是子類獲得父類的成員。
2)重寫是繼承後重新實現父類的方法。
3)重載是在一個類裡一系列參數不同名字相同的方法。
4)多態則是為了避免在父類裡大量重載引起代碼臃腫且難於維護。

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

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

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類的方法是重載。
比較紅色的和粉紅的部分就可以發現多態對重載的優點:如果用重載,則在父類裡要對應每一個子類都重載一個取得邊數的方法;如果用多態,則父類只提供取得邊數的接口,至於取得哪個形狀的邊數,怎樣取得,在子類裡各自實現(重寫)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved