[抽象類與抽象方法]
1、什麼是抽象方法?
沒有方法體{}的方法,必須使用abstract關鍵字修飾,這樣的方法,我們稱之為抽象方法。
abstract function say()
2、什麼是抽象類?
包含抽象方法的類就是抽象類,抽象類必須使用abstract關鍵字修飾
abstract class person{}
3、抽象類的注意事項
①抽象類可以包含非抽象方法
②包含抽象方法的類,一定是抽象類
抽象類 並不一定包含抽象方法
③抽象類,不能例項化
(抽象類中可能包含抽象方法,抽象方法沒有方法體,例項化呼叫沒有意義)
我們使用抽象類的目的就是限制例項化
4、子類繼承抽象類,那麼子類必須重寫父類的所有抽象方法,除非,子類也是抽象類
5、使用抽象類的作用?
① 限制例項化。(抽象類是乙個不完整的類,裡面的抽象方法沒有方法體,所以不能例項化)
② 抽象類為子類的繼承提供一種規範,子類繼承乙個抽象類,則必須包含並且實現抽象類中已定的抽象方法
abstractclass
person }
abstract
class
chinese extends person
[介面]
1、什麼是介面?
介面是一種規範,提供了一組實現介面的類所必須實現的方法組合
介面的使用inte***ce關鍵字宣告
inte***ce inter{}
2、介面中的所有方法必須都是抽象方法
介面中的抽象方法不需要也不能使用abstract修飾
3、介面中不能宣告變數,不能有屬性,只能使用常量
4、介面可以繼承介面,使用extends關鍵字
介面使用extends繼承介面,也不能實現多繼承
inte***ce int1 extends inter{}
5、類可以實現介面,使用implements關鍵字
類使用implements實現介面,可同時實現多個介面,多個介面用逗號分隔
abstract class person implements inter,inter2{}
乙個類實現乙個或多個介面,那麼這個型別必須實現所有介面中的所有抽象方法,除非,這個類是抽象類
[介面與抽象類的區別]
1、宣告方式上,介面用inte***ce關鍵字,抽象類使用abstract class
2、實現\繼承方式上,乙個類使用extends繼承抽象類,使用implements實現介面
3、抽象類只能單繼承,介面可以多實現(介面extends介面),多實現(類implements介面)
4、抽象類中可以有非抽象方法,介面中只能有抽象方法,不能有非抽象方法
抽象類中的抽象方法必須使用abstract關鍵字修飾,介面中抽象方法不能帶修飾詞
5、抽象類是個類,可以有屬性,變數。介面中只能有常量。
inte***ceinter
inte***ce
int1 extends inter{};
abstract
class
person implements inter
模擬印表機案例:
墨盒:彩色、黑白
紙張型別:a4、b5
墨盒和紙張都不是印表機廠商提供的
印表機的列印功能需要使用相容市場上的墨盒、紙張
測試
inte***cemohe
inte***ce
*****
class
printer
}class
black implements mohe
}class
colors implements mohe
}class
a4 implements *****
}class
b5 implements *****
}$parint = new
printer();
$parint->prints(new colors(), new a4());
[多型]
1、乙個類被多個子類繼承
如果,這個類的某個方法,再多個子類中,表現出不同的功能,我們稱這種行為為多型
2、實現多型的必要途徑
①子類繼承父類;
②子類重寫父類方法;
③父類引用指向子類物件;
abstractclass
persom
class
chinese extends persom
}class
english extends persom }/*
$c = new chinese();
$c ->say();
$e = new english();
$e ->say();
*/function func(person $p)
func(
newchinese());
func(
new english());
OOP(物件導向)抽象類和介面
1.抽象類 abstract修飾的類就是抽象類 父類通常是抽象的,不能例項化 格式 public abstract class a 特徵 不可以直接例項化 可以有構造方法,可以有屬性 留給子類使用 可以有自定義方法 可以有抽象方法,子類必須重寫抽象父類的抽象方法,除非子類也是抽象類 應用場景 是乙個...
物件導向 OOP中的抽象類,介面以及多型
抽象類與抽象方法 1 什麼是抽象方法?沒有方法體 的方法,必須使用abstract關鍵字修飾,這樣的方法,我們稱之為抽象方法。abstract function say 2 什麼是抽象類?包含抽象方法的類就是抽象類,抽象類必須使用abstract關鍵字修飾 abstract class person...
物件導向 介面類 抽象類
python 沒有介面這個概念 介面類,抽象類 制定乙個規範.介面類,抽象類 python中就是一樣的 1,歸一化設計.2,制定乙個規範,凡是繼承我類的類,必須有我規定的方法.第一版class alipay def init self,money self.money money defpay se...