1、什么是對象? 什么是類?
對象是可以看的見摸得著的,對象可以是任何東西,比如水杯,書,手機等。準確的說,對象是一個自包含的實體,用一組可識別的特性和行為標識的。
類就是具有相同的屬性和功能的對象的抽象集合。
實例,就是一個真實的對象。比如說‘人’這個對象,就是’人‘類的實例了。而實例化就是創建對象的過程,使用new關鍵字來創建的。
2、構造方法
構造方法,又叫構造函數,其實就是對類進行實例化。構造方法與類名同名,無返回值,也不需要void,在new時候調用。
3、方法重載
方法重載提供了創建同名的多個方法的能力,但這些方法需使用不同的參數類型。
方法重載時,兩個方法必須要方法名相同,單參數類型或者個數必須要有所不同。
好處,在不改變原方法的基礎上,新增功能(方法名相同)。
4、屬性與修飾符
屬性是一個方法或一對方法,但在調用他的代碼看來,他是一個字段,即屬性適合于以字段的方式使用方法調用的場合。
字段是存儲類需要滿足其設計所需要的數據,字段是與類相關的變量。
public表示它所修飾的類成員可以允許其他任何類來訪問,俗稱公有的。而private表示值允許同一個類中的成員訪問,其他類包括它的子類無法訪問,俗稱私有的。
通常字段都是private,即私有變量,而屬性都是public,即公有的變量。?
5、面向對象三大特性
封裝:每個對象都包含它能進行操作所需要的所有信息,這個特性稱為封裝,因此對象不必依賴其他對象來完成自己的操作。
繼承:對象的繼承代表了一種‘is-a’的關系,如果兩個對象A和B,可以描述為B是A,這表明B可以繼承A。繼承者還可以理解為是對被繼承者的特殊化,因為除了具備被繼承者的特性外,還具備自己獨有的個性。繼承定義了類如何相互關聯,共享特性。繼承的工作方式是,定義父類和子類,或叫做基類和派生類,其中子類繼承父類的所有特性。子類不但繼承了父類的所有特性,還可以定義的新的特性。
如果子類繼承父類,第一 子類擁有父類非private的屬性和功能;第二 子類具有自己的屬性和功能,及子類可以擴展父類沒有的功能和屬性;第三 子類可以重寫父類的方法。
protected表示繼承時子類可以對基類有完全訪問權。
繼承是有缺點的,那就是父類變,子類也要跟著改變。繼承顯然是一種強耦合的關系。
多態:第一 子類以父類的身份出現 第二 子類在工作時以自己的工作方式實現 第三 子類以父類的身份出現時,子類特有的屬性和方法不可以使用。
6、抽象類
抽象類需要注意幾點,第一 抽象類不能被實例化。第二 抽象類的方法必須被子類重寫,不然沒有任何的存在意義。第三 如果類中包含抽象方法,那么類就必須定義為抽象類,不論是否還包含其他一般方法。
抽象類擁有盡可能多的共同代碼,擁有盡可能少的數據。
因為抽象類是一個概念,它提供一個繼承的出發點,當設計一個新的抽象類時,一定是用來繼承的,所以,在一個以繼承關系形成的頂級結構里面,樹葉節點應當時具體類,而樹枝節點均應當時抽象類。也就是說,具體類不是用來繼承的。
7、接口
接口十八隱式公共方法和屬性組合起來,以封裝特定功能的一個集合。一旦類實現了接口,類就可以支持接口所制定的所有屬性和成員。接口不允許提供任何成員的執行方式。
實現接口的類就必須要實現接口中的所有方法和屬性。
抽象類可以給出一些成員的實現,接口卻不包含成員的實現,抽象類的抽象成員可被之類部分實現,接口的成員需要實現類完全實現,一個類只能繼承一個抽象類,但可實現多接口。
類是對對象的抽取,抽象類是對類的抽取,接口是對行為的抽象。
如果行為跨越不同類的對象,可以使用接口;對于一些相識的類對象,用繼承抽象類。
從設計角度講,抽象類是從子類中發現了公共的東西,泛化出父類,然后子類繼承父類,而接口是根本不知子類的存在,方法如何實現還不確認,預先定義。
抽象類是自底而上抽象出來的,而接口則是自頂向下設計出來的。
?