繼承、封裝、多態、接口

封裝

靜態域:將域定義爲static,每個類只有一個這樣的域。這個類的所有實例共享一個靜態域。它屬於類,不屬於任何獨立的對象
靜態方法:不能向對象實施操作的方法,可認爲靜態方法是沒有this參數的方法。建議使用類名來調用靜態方法。
使用靜態方法的情況:
一個方法不需要訪問對象狀態,其所需參數都是通過顯示參數提供。
一個方法只需要訪問類的靜態域。

繼承

兩個類之間有明顯的is-a關係。在Java中,所有繼承都是共有繼承。已存在的類稱爲超類,新類稱爲子類。
若超類中的方法對子類並不適用,需要爲子類提供一個新的方法來覆蓋超類中的方法。
若需要訪問超類中的私有域,必須藉助於公有的接口,可用super.超類方法名()解決問題
由於子類的構造器不能訪問超類的私有域,必須利用超類的構造器對這部分私有域進行初始化。使用super調用構造器的語句必須是子類構造器的第一句。
如果子類的構造器沒有顯式調用超類中的其他構造器,則會默認調用(無參)。
Java不支持多繼承

多態

對象變量是多態的,可以將一個子類的對象賦給超類變量。一個超類可以引用他的任何一個子類。但是不能將一個超類的引用賦給子類變量

有時希望阻止某個類定義子類,不允許擴展的類稱爲final類。
類中的方法也可以被聲明爲final,這樣做,子類就不能覆蓋這個方法。

較高層次的類可能比較抽象,可定義抽象類。包含一個或多個抽象方法的類本身必須被聲明爲抽象的。
除了抽象方法,抽象類還可以包含具體數據和具體方法。
抽象方法充當着佔位的角色,他們的實現在子類中。
不含抽象方法也可以聲明抽象類,抽象類不能被實例化,但可以定義一個非抽象子類的對象。

Object:所有類的超類

接口

接口不是類,而是對類的一組需求描述,這些類要遵從接口描述的統一格式進行定義。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章