大家好,今天想跟大家分享繼承這個單元,
不要想歪囉,不是繼承財產,是類別的繼承!
話說我也很想繼承財產 XD
物件導向程式設計可將功能不錯的類別成員,
授予其他類別來繼承(Inheritance),
被繼承的類別稱為『父類別』(Superclass),
繼承別人的稱為『子類別』(Subclass)。
子類別除了繼承父類別定義的資料和方法外,
還可以自行新增資料和方法,
因此子類別能夠提供更多的功能。
繼承除了促使子類別優於父類別之外,
就是程式碼可以重複的使用!
例如,開發了一個系統有A功能,
日後要開發另外一個系統,類似A功能的B功能,
這時候就可以利用繼承的方式,
讓大部分的程式碼不用再重寫,
直接繼承上一層的A功能,
在新增某些部分的程式就可以完成B功能系統。
繼承有幾點需要注意的!
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()方法成員。