iT邦幫忙

DAY 15
0

Java 學習筆記系列 第 15

Java 學習筆記 [15] 繼承

  • 分享至 

  • xImage
  •  

大家好,今天想跟大家分享繼承這個單元,

不要想歪囉,不是繼承財產,是類別的繼承!

話說我也很想繼承財產 XD

物件導向程式設計可將功能不錯的類別成員,

授予其他類別來繼承(Inheritance),

被繼承的類別稱為『父類別』(Superclass),

繼承別人的稱為『子類別』(Subclass)。

子類別除了繼承父類別定義的資料和方法外,

還可以自行新增資料和方法,

因此子類別能夠提供更多的功能。

繼承除了促使子類別優於父類別之外,

就是程式碼可以重複的使用!

例如,開發了一個系統有A功能,

日後要開發另外一個系統,類似A功能的B功能,

這時候就可以利用繼承的方式,

讓大部分的程式碼不用再重寫,

直接繼承上一層的A功能,

在新增某些部分的程式就可以完成B功能系統。

繼承有幾點需要注意的!

  1. 一個父類別可以衍生很多子類別,但是一個子類別只能繼承一個父類別,子類別可以將父類別已定義的成員當成基礎成員,進而擴充其他功能。

2.子類別不能繼承父類別用private修飾子所宣告的成員,但該相同名稱的成員在子類別中可以另外定義,只是兩者是不同成員,彼此互不影響。

3.子類別可以繼承父類別用protected修飾子所宣告的成員,但該成員只能在自身類別和繼承的子類別之內部敘述使用。

以下就讓大家看看小菜鳥今天練習的程式

package extendDemo;
class CMath
{
  public void getMax(int a, int b)
  {
    int bigNum;
    if (a>b) bigNum = a;
    else bigNum = b;
    System.out.println(a + "與" + b + "的最大數為" + bigNum);
  }
}

class SonCMath extends CMath  
{
  public void getFabonacci(int a)
  {
    int firstNum = 0, secondNum = 1;
    System.out.print("費式數列:") ;
    System.out.print(firstNum + ", " +secondNum);
    int ans;
    for(int i=2; i<=a; i++)
    {
      ans = firstNum + secondNum;
      System.out.print(", " +ans);
      firstNum = secondNum;
      secondNum = ans;
    }
  }
}

public class extendDemo
{
  public static void main(String[] args)
  {
    SonCMath math1 = new SonCMath();
    math1.getMax(10,20);        
    System.out.println();
    math1.getFabonacci(10);     
  }
}

以上這個範例最重要的地方就是第13行,類別SonCMath用extends來繼承類別CMath,

因此類別CMath所有的成員,由類別SonCMath繼承接受,

而且還多了一個可以顯示費氏數列的getFabonacci()方法成員。


上一篇
Java 學習筆記 [14] 正則表示法
下一篇
Java 學習筆記 [16] 集合
系列文
Java 學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言