1.抽象類
2.介面
介面就是一種公用的規範標準,只要符合規範標準,大家都可以通用
什麼是介面?
(1)就是多個類之間的公共規範
(2)介面就是一個特殊的抽象類,介面裏面的方法都是抽象方法
(3)介面解決了java單繼承的問題
-怎麼定義一個介面?
public interface 介面名{
}
介面的特點:
(1)介面裏面的屬性都是常數,預設會給你加上「public static final」修飾
(2)介面裏面的方法都是抽象方法,預設會給你加上「public abstract」進行修飾
(3)介面不能夠範例化
(4)抽象類是繼承,介面是用來實現的
(5)一個類實現一個介面,必須實現這個介面裏面所有的抽象方法(前提這個類不是抽象類)
(6)一個類可以實現多個介面,中間使用逗號隔開
(7)介面裏面不能定義普通方法
(8)介面沒有構造方法
(9)介面也可以繼承介面,並且可以繼承多個介面
實現類
(1)實現介面的類叫做實現類 class A implements B
(2)如果一個類繼承了一個父類同時需要實現一個介面,繼承一定是在實現介面前面
class E extends D implements C
介面和抽象類的相同點和不同點:
相同點:
①介面和抽象類都不能被範例化,只能被其他類實現和繼承
②介面和抽象類都可以包含抽象方法,實現介面和抽象類的類都必須實現這些抽象方法,否則實現的類就是抽象類
不同點:
①抽象類與介面定義不同:抽象類abstract class,介面interface
②介面裏只能包含抽象方法,不包含已經實現的方法;抽象類則完全可以包含普通的方法
③介面裏不能定義靜態方法;抽象類可以定義靜態方法
④介面裏只能定義靜態常數屬性,不能定義普通屬性;抽象類裡既可以定義普通屬性,也可以定義靜態常數
⑤介面不包含建構函式;抽象類可以包含建構函式,抽象類裡的建構函式並不是用於建立物件,而是讓其子類呼叫這些建構函式來完成屬於抽象類的初始化操作
⑥介面不包含初始化塊,但抽象類可以包含初始化塊
⑦一個類最多隻能有一個直接父類別,包括抽象類;但一個類可以直接實現多個介面,通過實現多個介面可以彌補Java的單繼承不足
物件導向總結: