1. 程式人生 > >面試總結之談談你對面向物件的理解

面試總結之談談你對面向物件的理解

對面向物件的理解

在我理解,面向物件是向現實世界模型的自然延伸,這是一種“萬物皆物件”的程式設計思想。在現實生活中的任何物體都可以歸為一類事物,而每一個個體都是一類事物的例項。面向物件的程式設計是以物件為中心,以訊息為驅動,所以程式=物件+訊息。

面向物件有三大特性,封裝、繼承和多型。

封裝就是將一類事物的屬性和行為抽象成一個類,使其屬性私有化,行為公開化,提高了資料的隱祕性的同時,使程式碼模組化。這樣做使得程式碼的複用性更高。

繼承則是進一步將一類事物共有的屬性和行為抽象成一個父類,而每一個子類是一個特殊的父類--有父類的行為和屬性,也有自己特有的行為和屬性。這樣做擴充套件了已存在的程式碼塊,進一步提高了程式碼的複用性。

如果說封裝和繼承是為了使程式碼重用,那麼多型則是為了實現介面重用。多型的一大作用就是為了解耦--為了解除父子類繼承的耦合度。如果說繼承中父子類的關係式IS-A的關係,那麼介面和實現類之之間的關係式HAS-A。簡單來說,多型就是允許父類引用(或介面)指向子類(或實現類)物件。很多的設計模式都是基於面向物件的多型性設計的。

總結一下,如果說封裝和繼承是面向物件的基礎,那麼多型則是面向物件最精髓的理論。掌握多型必先了解介面,只有充分理解接口才能更好的應用多型。