Java面向?qū)ο蠊灿谢咎卣?,分別為封裝性、繼承性、多態(tài)性。其中繼承是一種支持代碼可重復(fù)使用的機(jī)制,其實現(xiàn)了數(shù)據(jù)的隱藏,部分?jǐn)?shù)據(jù)對程序的其他部分隱藏,隱藏的目的是防止別人修改數(shù)據(jù)。
Java面向?qū)ο蟮幕咎卣?/span>
1、封裝性
在你的計算機(jī)中,有許多文件夾,每個文件夾中有許多文件。同一文件夾中的文件通常具有相同的屬性:例如,它們都是java文件,或者它們都是.class文件。
每個文件都是一個對象,而一個文件夾就是一個類。具有相同屬性的對象被分組為一個類。文件夾的名稱就是類的名稱。
除了文件對象具有諸如文件名、大小、較后修改時間等屬性外,是不是還有對屬性的操作嗎?文件可以被編輯、復(fù)制、刪除、粘貼,而這些操作,可以改變屬性的值。
例如,編輯一個文件后,文件的名稱、大小和較后修改時間都會改變。
封裝(Encapsulation),是在一個類中集中描述這個類的對象有哪些屬性,屬性的名稱、數(shù)據(jù)類型和可見性,以及對象有哪些操作。
根據(jù)編程語言的術(shù)語,類是一種數(shù)據(jù)類型,可以用它來逐一定義對象。對象是稱為類的變量或?qū)嵗?/span>
封裝,實現(xiàn)了數(shù)據(jù)隱藏,是將一些數(shù)據(jù)從程序的其他部分隱藏起來。隱藏的目的是為了防止他人修改數(shù)據(jù)。
2.繼承性
繼承是一種支持代碼可重復(fù)使用的機(jī)制。通過定義新的類,可以從現(xiàn)有的類中繼承代碼,減少代碼的總量和編寫程序代碼的時間,縮短開發(fā)周期。
例如,已經(jīng)定義了三角形類Triangle,則定義直角三角形Rtriangle可以繼承Triangle中的數(shù)據(jù)和方法,再添加新的數(shù)據(jù)和方法,即實現(xiàn)了代碼的重用。
繼承在生活中比比皆是。當(dāng)一個建筑設(shè)計部門開始進(jìn)行新的建筑設(shè)計時,可能會繼承過去設(shè)計的一些風(fēng)格和結(jié)構(gòu)理念。經(jīng)過修改和補(bǔ)充,一個新的設(shè)計就產(chǎn)生了。
3.多態(tài)性
多態(tài)性類似于自然語言中的多義性現(xiàn)象,比如中文的"打"字,在不同的語境下有不同的含義。例如,如漢字“打”,用在不同上下文中含義不同?!按蜥u油”是買醬油,“打蘋果”是削蘋果皮,“打牌”是玩牌,“打車”則是租車。
這種根據(jù)上下文來確定一個詞的含義的做法顯然增強(qiáng)了這個詞的表現(xiàn)力。面向?qū)ο笳Z言中的多態(tài)性也是指以單一接口的形式表達(dá)許多不同的動作。
Java中有方法重載(method overloading)和方法重寫(method overriding)兩種多態(tài)。