1.抽象類和抽象方法(abstract關鍵字) 1.抽象方法 使用abstract修飾的方法,沒有方法體,只有聲明。定義了一種規範。其所在的抽象類的子類必須給抽象方法提供具體的實現。 2.抽象類 有抽象方法的類就是抽象類。通過抽象類,我們可以嚴格限制子類設計,使子類之間更加互通 例: 註: 1.有抽 ...
1.抽象類和抽象方法(abstract關鍵字)
1.抽象方法
使用abstract修飾的方法,沒有方法體,只有聲明。定義了一種規範。其所在的抽象類的子類必須給抽象方法提供具體的實現。
2.抽象類
有抽象方法的類就是抽象類。通過抽象類,我們可以嚴格限制子類設計,使子類之間更加互通
例:
註:
1.有抽象方法的類只能定義成抽象類
2.抽象類不能實例化,不能通過new來實例抽象類
3.抽象類可以包含屬性、方法、構造方法。但是構造方法不能用來new實例,只能用被子類調用
4.抽象類只能用來被繼承
5.抽象方法必須被子類實現(重寫)。
2.介面(interface)
介面是比“抽象類”還“抽象”的“抽象類”,可以更加規範的對子類進行規範。全面地專業地實現了:規範和具體實現的分離
抽象類中還有普通的方法,某些具體的實現,而介面中全部都是抽象方法。
介面中的抽象方法的abstract可以省略
例:
介面的本質就是鍥約,就是規範。
比如在電腦中,外接滑鼠,外接鍵盤,外接u盤,都是usb介面。
類似的除了usb,還有耳機的3.5毫米,手機的typc ,iPhone的lighting,電飯鍋和冰箱的三角插頭,這些都可以理解為介面。
放在一臺筆記本上形容最合適,一個筆記本就是一個程式,他的usb就是程式的介面,
你可以通過介面來給筆記本擴展功能。
註:介面是可以多繼承的,繼承多個介面
形式:
【修飾訪問符】 interface 【介面名】 extends 【父介面1】,【父介面2】。。。。{
定義常量;
定義抽象方法;
}
註:
1.訪問修飾符只能是public和預設
2.介面名和類名命名機制一樣
3.介面可以多繼承
4.介面中的屬性只能是常量,總是public static final修飾(預設不寫也是)。
5.介面中方法永遠是public abstract(預設不寫也是)。
介面的實現
1.子類通過interface來實現介面中的規範
2.介面不能創建實例,但是可以用於聲明引用變數
3.一個類實現了介面,必須實現介面中所有方法,並且這些方法只能是public
例:
介面之間的多繼承
介面c繼承介面a和介面b的方法,實現介面c的類中必須包含a,b,c三個介面的所有方法
註:
問:JAVA中有沒有多繼承?
1.java的類沒有多繼承,只單繼承
2.java的介面有多繼承