Java的面向?qū)ο缶幊?/a>">Java的面向?qū)ο缶幊?/a>
739
2022-05-29
封裝就是把屬性都隱藏,為了安全性。比如,你口袋里有100塊錢,看做你的屬性,別人如果可以直接把錢就拿走,就不安全。
高內(nèi)聚,就是類的內(nèi)部數(shù)據(jù)操作細(xì)節(jié)由自己完成,不允許外部干涉;低耦合:僅暴露方法給外部使用。
這樣說來,屬性都要隱藏,也就是要用private來修飾。那么,繼承的時候,這些屬性都無法繼承了。
所以,封裝的理念,和繼承的理念,是有矛盾的。
這么說對嗎?顯然是不對的,那么哪里不對呢?關(guān)于繼承的說法不對。
繼承,不管好的壞的,公開的隱藏的,都會全盤繼承下來,只是說,有些屬性在父類定義為private后,
即使是子類,也無法看到和直接訪問。并不是說子類沒有繼承下來,而是說不能直接查看和使用而已。
而是要通過封裝后暴露的方法來訪問。所以,封裝、和繼承是可以配合,是不完全矛盾的。
繼承的重點(diǎn),在于減少冗余的屬性和方法的定義。而在繼承的基礎(chǔ)之上,會衍生出一個大的概念系統(tǒng):抽象、重寫、運(yùn)行時多態(tài)等等。
比如,當(dāng)定義了一個Animal類時:
package com.exam; public class Animal { private String name; Animal(){ name="Animal"; } public String getName(){ return name; } public void say(){ System.out.println("Animal# my name is "+name); } }
而一個繼承類,雖然繼承了Animal類,但是想直接訪問它的private修飾的屬性,那是不行的,編譯時就會報(bào)錯。
而在繼承的基礎(chǔ)上,又會出現(xiàn)方法重寫。出現(xiàn)抽象類。
另外,為了解決加java里面只有單繼承的問題,又出現(xiàn)了接口。
從繼承這個基本的概念,延伸出了非常多的擴(kuò)展的概念,而這些擴(kuò)展的概念都是有非常重要的實(shí)戰(zhàn)意義。
有人說java是一門非常成熟的工程語言。我非常贊成。
這一套的概念學(xué)習(xí)下來,你會覺得它是完整的,閉環(huán)的,有體系的,能夠經(jīng)得起時間考驗(yàn)的,也就是說,能夠長期的存活下來的。
Java
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。