“繼承”(Inheritance)是面向對象軟件技術當中的一個概念,例如在java語言中,java語言中不支持多重繼承,是通過接口實現多重繼承的功能。如果一個類A繼承自另一個類B,就把這個A稱為"B的子類",而把B稱為"A的父類"。繼承可以使得子類具有父類的各種屬性和方法,而不需要再次編寫相同的代碼。在令子類繼承父類的同時,可以重新定義某些屬性,并重寫某些方法,即覆蓋父類的原有屬性和方法,使其獲得與父類不同的功能。盡管子類包括父類的所有成員,它不能訪問父類中被聲明成private 的成員 ...
繼承是指一個對象直接使用另一對象的屬性和方法。事實上,我們遇到的很多實體都有繼承的含義。例如,若把汽車看成一個實體,它可以分成多個子實體,如:卡車、公共汽車等。這些子實體都具有汽車的特性,因此,汽車是它們的"父親",而這些子實體則是汽車的"孩子"。
繼承的目的:實現代碼重用
派生類聲明:
class 派生類名:繼承方式 基類名
{
新增成員聲明;
};
三種繼承方式
公有繼承 public (原封不動)
保護繼承 protected (折中)
私有繼承 private (化公為私)
繼承方式影響子類的訪問權限:
派生類成員對基類成員的訪問權限
通過派生類對象對基類成員的訪問權限
同類事物具有共同性,在同類事物中,每個事物又具有其特殊性。運用抽象的原則舍棄對象的特殊性,抽取其共同性,則得到一個適應于一批對象的類,這便是基類(父類),而把具有特殊性的類稱為派生類(子類),派生類的對象擁有其基類的全部或部分屬性與方法,稱作派生類對基類的繼承。
1、我們先建立基類BaseClass.class,然后再從該類派生新類InherienceTest,展示從基類派生的方法(Methord)及基類構造函數的執行。
package InherienceTest.BaseClass;//package 后能被繼承,不過不能執行
public class BaseClass
{
public BaseClass(){
System.out.println("I’m the Constructor Function in BaseClass!");
}
protected static void FuncTest(){
System.out.println("This is a Function Test in BaseClass!");//Static Methord
}
public static void main(String[] args){
FuncTest();
System.out.println("This is the BaseClass!");
System.out.println(new java.util.Date());
}
};
import InherienceTest.BaseClass.BaseClass;//相當于路徑:path & InherienceTest\BaseClass\BaseClass.class
public class
InherienceTest extends BaseClass//注意:public主類名必須和文件名相同
{
//基類不能和派生類在同一目錄下面。
public static void main(String[] args)
//main函數必須是pulic static
{
InherienceTest xx=new InherienceTest();//構造函數被執行
xx.FuncTest();
//調用繼承的方法
System.out.println("Hello World!");
}
}