java如何理解继承性_理解 Java 的三大特性之继承
?通過代碼深入了解繼承
在講解之前我們先看一個例子,該例子是前篇博文的。
Husband.java:
public classHusband {/** 對屬性的封裝
* 一個人的姓名、性別、年齡、妻子都是這個人的私有屬性*/
privateString name ;privateString sex ;private intage ;privateWife wife;
}
Wife.java:
public classWife {privateString name;private intage;privateString sex;privateHusband husband;
}
從這里我們可以看出,Husband、Wife 兩個類除了各自的 wife、husband 外其余部分全部相同;
作為一個想最大限度實現復用代碼的我們是不能夠忍受這樣的重復代碼;
果再來一個小三、小四、小五……(扯遠了
)我們是不是也要這樣寫呢?
那么我們如何來實現這些類的可復用呢?利用繼承!!
首先我們先離開軟件編程的世界,從常識中我們知道丈夫、妻子、小三、小四…,他們都是人;
而且都有一些共性,有名字、年齡、性別等等,而且他們都能夠吃東西、走路、說話等等共同的行為;
所以從這里我們可以發現他們都擁有人的屬性和行為,同時也是從人那里繼承來的這些屬性和行為的。
從上面我們就可以基本了解了繼承的概念了,繼承是使用已存在的類的定義作為基礎建立新類的技術;
新類的定義可以增加新的數據或新的功能,也可以用父類的功能,但不能選擇性地繼承父類。
通過使用繼承我們能夠非常方便地復用以前的代碼,能夠大大的提高開發的效率。
新建一個 Person 類;
Person.java:
public classPerson {privateString name ;privateString sex ;private intage ;
}
讓 Husband類 和 Wife類 繼承這個類:
public class Husband extendsPerson{privateWife wife;
}
public class Wife extendsPerson{privateHusband husband;
}
在 Java 中通過 extends 關鍵字可以申明一個類是從另外一個類繼承而來的;
對于 Husband、Wife?使用繼承后,除了代碼量的減少我們還能夠非常明顯的看到他們的關系。
繼承所描述的是 “is-a” 的關系;
如果有兩個對象 A 和 B,若可以描述為 “A是B”;
則可以表示 A 繼承 B ,其中 B 是被繼承者稱之為父類或者超類,A 是繼承者稱之為子類或者派生類。
實際上繼承者(A) 是被繼承者(B) 的特殊化,它除了擁有被繼承者(B) 的特性外,還擁有自己獨有得特性。
例如貓有抓老鼠、爬樹等其他動物沒有的特性。
同時在繼承關系中,繼承者(A) 完全可以替換被繼承者(B),反之則不可以;
例如我們可以說貓是動物,但不能說動物是貓就是這個道理,其實對于這個我們將其稱之為 “向上轉型”,下面介紹。
誠然,繼承定義了類如何相互關聯,共享特性。
對于若干個相同或者相似的類,我們可以抽象出他們共有的行為或者屬相并將其定義成一個父類(或者超類);
然后用這些類繼承該父類,他們不僅可以擁有父類的屬性、方法還可以定義自己獨有的屬性或者方法。
同時在使用繼承時需要記住三句話:
1、子類擁有父類非private的屬性和方法。
2、子類可以擁有自己屬性和方法,即子類可以對父類進行擴展。
3、子類可以用自己的方式實現父類的方法。(以后介紹)。
綜上所述,使用繼承確實有許多的優點,除了將所有子類的共同屬性放入父類,實現代碼共享,避免重復外;
還可以使得修改擴展繼承而來的實現比較簡單。
誠然,講到繼承一定少不了這三個東西:構造器、protected關鍵字、向上轉型。
總結
以上是生活随笔為你收集整理的java如何理解继承性_理解 Java 的三大特性之继承的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java获取eureka_获取Eurek
- 下一篇: java第七章多线程_第七章 多线程