摘要:類可以用修飾,表示抽象類,抽象類不能直接被實(shí)例化。但是繼承自這個(gè)抽象類的方法就可以被實(shí)例化。
類可以用 abstract 修飾,表示抽象類,抽象類不能直接被實(shí)例化。但是,繼承了抽象類的普通類是可以被實(shí)例化的。如:
//one.php
實(shí)例化的時(shí)候會(huì)報(bào)Fatal error的錯(cuò)誤。
但是繼承自這個(gè)抽象類的方法就可以被實(shí)例化。如:
//index.php include "one.php"; class index extends one { function __construct(){ parent::__construct(); } } $obj = new index;
除了類可以用 abstract 修飾之外,方法也能被 abstruct 修飾,為抽象方法。抽象方法真的是很抽象,它并沒有內(nèi)容,如:
如果方法被 abstruct 修飾,那么這個(gè)類必須用abstruct,不然就
會(huì)報(bào)錯(cuò)。也就是說抽象類可以有普通的方法,但是抽象方法必須在抽象類里面定義,并且,如果繼承了這個(gè)有抽象方法的抽象類,那么在你繼承的這個(gè)類里面必須重寫這個(gè)方法,否則依然會(huì)報(bào)錯(cuò)。如:
但是抽象類中的抽象方法似乎不能被定義為靜態(tài)的,定義了之后就報(bào)錯(cuò)。如:
還有,抽象類是可以繼承抽象類的,并且不需要重寫父類的抽象方法,它的抽象方法不能和父類的抽象方法同名,他們的關(guān)系就像是拓展延伸的關(guān)系。如:
由于平時(shí)接觸這些也不多,主要都是基于框架開發(fā)或者直接在其他系統(tǒng)上二次開發(fā),對(duì)這些稍微底層一點(diǎn)的知識(shí)理解的不透徹,在我的理解看來(lái),抽象類和方法主要是用在比較底層的被繼承的類中,供其他繼承的類去拓展。但是是否對(duì)于性能是否有改變就不大清楚了。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21402.html
摘要:抽象類和接口小記抽象類和接口實(shí)現(xiàn)了的多態(tài)多態(tài)是面向?qū)ο蟪绦蛘Z(yǔ)言的核心在項(xiàng)目開發(fā)過程中其實(shí)很少使用抽象類接口用得比較多今天小記一下抽象類和接口的區(qū)別抽象類抽象類不能被實(shí)例化抽象類可以繼承可以定義變量可以定義構(gòu)造方法抽象方法的要顯式的寫出來(lái)其子 Java抽象類和接口小記 Java抽象類和接口實(shí)現(xiàn)了java的多態(tài).多態(tài)是面向?qū)ο蟪绦蛘Z(yǔ)言的核心,在項(xiàng)目開發(fā)過程中,其實(shí)很少使用抽象類,接口用得比...
摘要:如果一個(gè)非抽象類遵循了某個(gè)接口,就必須實(shí)現(xiàn)該接口中的所有方法。抽象類是對(duì)整個(gè)類整體進(jìn)行抽象,包括屬性行為,但是接口卻是對(duì)類局部行為進(jìn)行抽象。因此最好的解決辦法是單獨(dú)將報(bào)警設(shè)計(jì)為一個(gè)接口,包含行為設(shè)計(jì)為單獨(dú)的一個(gè)抽象類,包含和兩種行為。 一、抽象類 二、接口 三、抽象類和接口的區(qū)別 一、抽象類 在了解抽象類之前,先來(lái)了解一下抽象方法。抽象方法是一種特殊的方法:它只有聲明,而沒有具體的實(shí)現(xiàn)...
摘要:抽象方法沒有方法體抽象方法權(quán)限修飾符不能為抽象方法的目的就是為了讓子類繼承重寫的,所以抽象方法不能私有,不能修飾。另外,添加默認(rèn)方法不會(huì)影響函數(shù)式接口的使用。 原文:抽象類和接口的區(qū)別已經(jīng)變了 隨著JDK的不斷迭代,抽象類和接口的區(qū)別已經(jīng)有了些許改變,你是否還停留在JDK 7 的答案呢? 定義 抽象類定義通過 abstract class public abstract class A...
摘要:最近一直在刷校招的題目,突然發(fā)現(xiàn)自己對(duì)接口和抽象類的掌握并不牢固,所以想記錄一下對(duì)接口和抽象類的理解一抽象類抽象方法是一種特殊的方法它只有聲明,而沒有具體的實(shí)現(xiàn)。因?yàn)槌橄箢愔泻袩o(wú)具體實(shí)現(xiàn)的方法,所以不能用抽象類創(chuàng)建對(duì)象。 最近一直在刷校招的題目,突然發(fā)現(xiàn)自己對(duì)接口和抽象類的掌握并不牢固,所以想記錄一下對(duì)java接口和抽象類的理解 一:抽象類 抽象方法是一種特殊的方法:它只有聲明,而沒...
摘要:在設(shè)計(jì)模式中,抽象類不能夠被實(shí)例化初始化,但是可以依靠具體類的繼承來(lái)實(shí)現(xiàn)。對(duì)于大型項(xiàng)目來(lái)說,對(duì)象都是由基本的抽象類繼承實(shí)現(xiàn),而這些類的方法通常都由接口來(lái)定義。 原文地址:PHP設(shè)計(jì)模式(二):抽象類和接口 Introduction 對(duì)于編程來(lái)說,對(duì)事物的抽象是一個(gè)老生常談的話題,抽象問題更利于面向?qū)ο缶幊桃约俺绦蛟O(shè)計(jì)模式。和C/C++,Java,Python等語(yǔ)言一樣,PHP也支持面向...
摘要:抽象類是對(duì)整個(gè)類整體進(jìn)行抽象,包括屬性行為,但是接口卻是對(duì)類局部行為進(jìn)行抽象。因此最好的解決辦法是單獨(dú)將報(bào)警設(shè)計(jì)為一個(gè)接口,包含行為設(shè)計(jì)為單獨(dú)的一個(gè)抽象類,包含和兩種行為。 抽象類和接口的區(qū)別 1.語(yǔ)法層面上的區(qū)別 1)抽象類可以提供成員方法的實(shí)現(xiàn)細(xì)節(jié),而接口中只能存在public abstract 方法; 2)抽象類中的成員變量可以是各種類型的,而接口中的成員變量只能是pub...
閱讀 911·2023-04-26 02:16
閱讀 1218·2019-08-30 15:55
閱讀 2797·2019-08-30 15:53
閱讀 3392·2019-08-29 15:38
閱讀 2900·2019-08-29 13:42
閱讀 1989·2019-08-26 13:34
閱讀 1849·2019-08-26 10:10
閱讀 3083·2019-08-23 14:40