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的介面有多繼承
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/159467.html
標籤:Java
上一篇:回呼函式
