java的继承实例_java继承(实例讲解一)
Java繼承(Java inheritance)
Java繼承是使用已存在的類的定義作為基礎(chǔ)建立新類的技術(shù),新類的定義可以增加新的數(shù)據(jù)或新的功能,也可以用父類的功能,但不能選擇性地繼承父類。這種技術(shù)使得復(fù)用以前的代碼非常容易,能夠大大縮短開發(fā)周期,降低開發(fā)費(fèi)用。比如可以先定義一個(gè)類叫車,車有以下屬性:車體大小,顏色,方向盤,輪胎,而又由車這個(gè)類派生出轎車和卡車兩個(gè)類,為轎車添加一個(gè)小后備箱,而為卡車添加一個(gè)大貨箱。
JAVA不支持多重繼承,單繼承使JAVA的繼承關(guān)系很簡(jiǎn)單,一個(gè)類只能有一個(gè)父類,易于管理程序,同時(shí)一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,從而克服單繼承的缺點(diǎn)。
在面向?qū)ο蟪绦蛟O(shè)計(jì)中運(yùn)用繼承原則,就是在每個(gè)由一般類和特殊類形成的一般—特殊結(jié)構(gòu)中,把一般類的對(duì)象實(shí)例和所有特殊類的對(duì)象實(shí)例都共同具有的屬性和操作一次性地在一般類中進(jìn)行顯式的定義,在特殊類中不再重復(fù)地定義一般類中已經(jīng)定義的東西,但是在語(yǔ)義上,特殊類卻自動(dòng)地、隱含地?fù)碛兴囊话泐?以及所有更上層的一般類)中定義的屬性和操作。特殊類的對(duì)象擁有其一般類的全部或部分屬性與方法,稱作特殊類對(duì)一般類的繼承。
繼承所表達(dá)的就是一種對(duì)象類之間的相交關(guān)系,它使得某類對(duì)象可以繼承另外一類對(duì)象的數(shù)據(jù)成員和成員方法。若類B繼承類A,則屬于B的對(duì)象便具有類A的全部或部分性質(zhì)(數(shù)據(jù)屬性)和功能(操作),我們稱被繼承的類A為基類、父類或超類,而稱繼承類B為A的派生類或子類。
繼承避免了對(duì)一般類和特殊類之間共同特征進(jìn)行的重復(fù)描述。同時(shí),通過繼承可以清晰地表達(dá)每一項(xiàng)共同特征所適應(yīng)的概念范圍——在一般類中定義的屬性和操作適應(yīng)于這個(gè)類本身以及它以下的每一層特殊類的全部對(duì)象。運(yùn)用繼承原則使得系統(tǒng)模型比較簡(jiǎn)練也比較清晰。
編輯本段
Java繼承的特征
(1)繼承關(guān)系是傳遞的。若類C繼承類B,類B繼承類A,則類C既有從類B那里繼承下來的屬性與方法,也有從類A那里繼承下來的屬性與方法,還可以有自己新定義的屬性和方法。繼承來的屬性和方法盡管是隱式的,但仍是類C的屬性和方法。繼承是在一些比較一般的類的基礎(chǔ)上構(gòu)造、建立和擴(kuò)充新類的最有效的手段。
(2)繼承簡(jiǎn)化了人們對(duì)事物的認(rèn)識(shí)和描述,能清晰體現(xiàn)相關(guān)類間的層次結(jié)構(gòu)關(guān)系。
(3)繼承提供了軟件復(fù)用功能。若類B繼承類A,那么建立類B時(shí)只需要再描述與基類(類A)不同的少量特征(數(shù)據(jù)成員和成員方法)即可。這種做法能減小代碼和數(shù)據(jù)的冗余度,大大增加程序的重用性。
(4)繼承通過增強(qiáng)一致性來減少模塊間的接口和界面,大大增加了程序的易維護(hù)性。
(5)提供多重繼承機(jī)制。從理論上說,一個(gè)類可以是多個(gè)一般類的特殊類,它可以從多個(gè)一般類中繼承屬性與方法,這便是多重繼承。Java出于安全性和可靠性的考慮,僅支持單重繼承,而通過使用接口機(jī)制來實(shí)現(xiàn)多重繼承。
編輯本段
java-繼承-實(shí)例
//建一個(gè)A類
class A{
//成員變量 其中num是實(shí)參
int num=0;
//成員方法,其中 i 是型參
public A(int i){
//輸入int型文件輸出下面
System.out.println("aaaaaaaaaaaaaaaaaaa");
System.out.println("i= "+i);
//把輸入的i賦值給成員變量num
num=i;
}
}
//B繼承A
class B extends A{
int num=0;
//成員方法B.
public B(){
//繼承類A的方法.因?yàn)锽繼承了A必然繼承了A的特性.所以輸入int值10令方法實(shí)現(xiàn).
super(10);
System.out.println("bbbbbbbbbbbbbbbbbbbb");
//這里的num是類B的.
System.out.println("num= "+num);
//如果想顯示類A的num則需要用下列的super.num.這里注意num在類A中需是成員變量才可以.
System.out.println("super.num= "+super.num);
}
}
//建立測(cè)試類C
public class C{
//main
public static void main(String aa[]){
//new 一個(gè)對(duì)象B()
new B();
}
}
總結(jié)
以上是生活随笔為你收集整理的java的继承实例_java继承(实例讲解一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 想推翻JAVA的统治? 呵洗洗睡吧
- 下一篇: ols残差_涨知识丨OLS原理的矩阵方法