Java 面向对象四大特性
Java 面向?qū)ο笏拇筇匦?br />
1.抽象 ?2.封裝 ?3.繼承 ??4.多態(tài)
1.抽象。抽象就是將一些事物的共性和相似點(diǎn)抽離出來,并將這些屬性歸為一個(gè)類,簡(jiǎn)單理解是:將需要解決的事情抽象成Java代碼。
2.封裝。封裝是為了隱藏內(nèi)部實(shí)現(xiàn)細(xì)節(jié),是保證軟件部件具有優(yōu)良的模塊性的基礎(chǔ)。封裝的目標(biāo)就是要實(shí)現(xiàn)軟件部件“高內(nèi)聚,低耦合”,防止程序之間的相互依賴性帶來的變動(dòng)影響。Java中private關(guān)鍵字是封裝一個(gè)重要的部分,因?yàn)閜rivate定義的變量或方法只能在內(nèi)部使用,其他類不可直接使用,就好像一臺(tái)電腦中的元器件從表面看是不可見的,從而體現(xiàn)Java的封裝性。
3.繼承。在定義和實(shí)現(xiàn)一個(gè)類的時(shí)候,可以在一個(gè)已經(jīng)存在的類的基礎(chǔ)之上來進(jìn)行,把這個(gè)已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并可以加入若干新的內(nèi)容,或修改原來的方法(Override,重寫方法)使之更適合特殊的需要,這就是繼承。繼承是子類自動(dòng)共享父類數(shù)據(jù)和方法的機(jī)制,這是類之間的一種關(guān)系,提高了軟件的可重用性和可擴(kuò)展性。簡(jiǎn)單理解是:一些類的共同特性抽取到一個(gè)基類,然后這些類通過繼承而獲得原有的特性,而基類沒有的特性,則可以在類中創(chuàng)建新的。
4.多態(tài)。多態(tài)是運(yùn)行時(shí)刻接口匹配的對(duì)象相互替換的能力。指程序定義的引用變量所指向的具體類型和通過該引用變量發(fā)出的方法調(diào)用在編譯期并不確定,而是在程序運(yùn)行期間才確定(稱之為動(dòng)態(tài)綁定),即一個(gè)引用變量指向的是哪個(gè)類的實(shí)例對(duì)象,在編譯期間并不確定,在運(yùn)行階段才能決定,因此,這樣就可以使得引用變量綁定到各種不同的類實(shí)現(xiàn)上,從而實(shí)現(xiàn)不同的行為。多態(tài)性增強(qiáng)了軟件的靈活性和擴(kuò)展性。例如:
/** 動(dòng)物類 */ public class Animal{//吃protected void eat(){}//發(fā)出聲音protected void voice(){}}貓類繼承動(dòng)物類/**貓類 */ public class Cat extends Animal{protected void eat(){System.out.prinln("貓愛吃魚");}protected void voice(){System.out.println("喵喵喵");} }
/**狗類 */ public class Dog extends Animal{protected void eat(){System.out.prinln("狗愛吃骨頭");}protected void voice(){System.out.println("汪汪汪");} }
多態(tài)的呈現(xiàn)public static void main(String []args) {Animal ani=new Cat();ani.eat();ani = new Dog();ani.eat(); }
打印結(jié)果為:? 貓愛吃魚狗愛吃骨頭
上述的栗子中通過ani 引用重新指定對(duì)象,調(diào)用eat()方法,卻打印出來不同的結(jié)果,這就是多態(tài)。當(dāng)然這只是簡(jiǎn)單的栗子,更深入的理解需要大家在項(xiàng)目中不斷的應(yīng)用思考。
我的個(gè)人網(wǎng)站:美好禮物屋??? 我的個(gè)人APP: 騰訊應(yīng)用寶APP下載
總結(jié)
以上是生活随笔為你收集整理的Java 面向对象四大特性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ValueAnimator API 介
- 下一篇: Android Studio:创建类时,