php 抽象類 靜態方法嗎,php中的抽象類和靜態方法是什么

php中的抽象類是指:在class前加了abstract關鍵字且存在抽象方法的類,它不能被直接實例化;靜態方法是指:被static關鍵字修飾的方法,靜態方法用于操作靜態屬性。

8d91dc381567a7ee7f93efb4ecd2c7d2.png

抽象類

抽象類是指在 class 前加了 abstract 關鍵字且存在抽象方法(在類方法 function 關鍵字前加了 abstract 關鍵字)的類。

(推薦教程:php視頻教程)

抽象類不能被直接實例化。抽象類中只定義(或部分實現)子類需要的方法。子類可以通過繼承抽象類并通過實現抽象類中的所有抽象方法,使抽象類具體化。

如果子類需要實例化,前提是它實現了抽象類中的所有抽象方法。如果子類沒有全部實現抽象類中的所有抽象方法,那么該子類也是一個抽象類,必須在 class 前面加上 abstract 關鍵字,并且不能被實例化。

舉例說明:abstract Class AbstractClass

{

abstract public function A();//這里不要攜帶body

abstract protected function B();//這里不要攜帶body

public function C(){}//這里要攜帶body

}

class ClassA extends AbstractClass

{

public function A(){

echo "Hello,I'm A
";

}

protected function B(){

echo "Hello,I'm B
";

}

public function E()

{

echo "Hello,I'm E
";

}

}

靜態方法:

靜態方法被static關鍵字修飾。

靜態方法用于操作靜態屬性。所以,靜態方法里面不能操作非靜態屬性。

由于靜態方法不需要通過對象即可調用,所以偽變量$this在靜態方法中不可用。

如何訪問靜態方法呢?

在類內部:類名::靜態方法 或者 self::靜態方法

在類外部:類名::靜態方法 或者 對象實例->靜態方法

舉例說明:class Person{

public static $nums = 0; // 靜態屬性的申明

public $age = 0;

public function addNum(){

self::$nums++;

echo self::$nums; // 在類里面,可用self關鍵詞訪問靜態屬性

echo Person::$nums; // 類可直接訪問靜態屬性

// echo $this->nums; // 報錯,靜態屬性不可以由對象通過 -> 操作符來訪問

self::getNum(); // 在類里面,可用self關鍵詞訪問靜態方法

Person::getNum(); // 類可直接訪問靜態方法

}

public static function getNum(){

// 靜態方法

// echo $this->age; // 報錯,靜態方法里面不能操作非靜態屬性

echo '真的嗎?'.self::$nums; //靜態方法中只能操作靜態屬性

}

}

$p1 = new Person();

$p1->addNum();

echo $p1::$nums; // 對象實例可以這樣訪問靜態屬性

Person::getNum(); // 類可直接訪問靜態方法

$p1->getNum(); // 對象實例可以這樣訪問靜態方法

相關推薦:php培訓

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529963.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529963.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529963.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python目錄結構生成庫,使用CMake構建平臺無關的目錄結構

我試圖為我的跨平臺項目創建一個目錄結構,但遇到了一些問題。我已經讓CMake確定了放置庫和可執行文件的適當位置,但這種結構僅適用于Windows。在我的結構如下所示:項目目錄垃圾箱可執行文件圖書館圖書館Python增壓模塊python腳本這在Windows上…

centos 怎樣下載php,centos下怎樣安裝軟件

centos下安裝軟件的方法是:centos安裝軟件的命令1、rpm包的安裝1.安裝一個包# rpm -ivh2.升級一個包# rpm -Uvh3.移走一個包# rpm -e4.安裝參數--force 即使覆蓋屬于其它包的文件也強迫安裝--nodeps 如果該RPM包的安裝依賴其它包,即使其它包沒裝&#xf…

php fpm 安裝配置,php php+fpm安裝配置

sudo apt - get install php5 - cgi php5 - mysql php5 - fpm php5 - curl php5 - gd php5 - idn php - pear php5 - imagick php5 - imap php5 - mcrypt php5 - mhash php5 - ming php5 - pspell php5 - recode php5 - snmp php5 - tidy php5 - xmlrpc php5 - xsl打開 /etc/ph…

php post 微信沙箱,微信支付平臺錯誤:獲取沙箱密鑰失敗,確保交易密鑰是

按官方提示進行獲取沙箱密鑰的時候,久試不爽,總是提示錯誤 :“獲取沙箱密鑰失敗,確保交易密鑰是否正確”。這個純粹是微信平臺挖的坑呀,文檔沒有詳細的進行一些講解,也沒有提示需要key,下面來說…

shell腳本執行oracle刪除表,shell腳本操作oracle刪除表空間、創建表空間、刪除用戶...

oracle下表空間的導出,用戶的刪除,表空間刪除,用戶新建,表空間新建,數據導入的shell使用非oracle用戶執行該腳本參數說名$1:base表空間的用戶名$2:同步表空間的用戶名使用場景測試用&#xff0c…

PHP標題獲取數據庫內容,php – 如何從數據庫獲取項目的標題并將其發送到CodeIgniter中的標題模板...

嘗試這個>型號更改>控制器已更改。在模型中function get_card($card){$query $this->db->query("SELECT * FROM table_name WHERE creditcards $card ");$result $query->result_array();$count count($result); # Newif(empty($count)){ # Newre…

php教程調用數據庫,PHP數據庫調用類調用實例,php數據庫調用實例_PHP教程

PHP數據庫調用類調用實例,php數據庫調用實例config("dnsaaa;uidsa;pwdsa;dbnametest");//3.選擇數據庫$dbname $db->select_db("test");//4.設置允許調試$db->debug true;//5.執行一條不返回結果的SQL語句$db->execute("insert…

linux顯示磁盤使用情況命令,Linux中監控磁盤分區和使用情況的幾個工具

導讀在文章中將討論Linux中可用于監視磁盤使用情況的命令行實用程序,提供有關總大小容量、已用總量、文件系統信息和分區信息等。讓我們看看這些工具如何幫助檢索這些信息df命令df是一個Linux命令行實用程序,用于監視Linux磁盤使用情況。df命令顯示文件系…

linux網絡是文件嗎,linux網絡配置文件是什么意思

離開了么放得下我么回來了么還會愛我么新兵答主07-22TA獲得超過2383個贊網卡的配置:1.網卡配置文件對于網卡信息的配置通常包括:配置IP地址、子網掩碼和網關。網卡信息保存在網卡配置文件中。網卡配置文件位于/etc/sysconfig/network-scripts目錄下。一塊…

cd linux給u盤安裝程序,使用U盤安裝CDlinux

3、先把u盤插在電腦上與電腦連接,格式化成“FAT”文件系統,更改卷標為“CDLINUX”,之后再打開UltraISO工具進行寫入:a、這里把你下載好的CDlinux文件打開。b、點擊“寫入硬盤映像”c、這里直接默認就好,點擊“寫入”4、…

linux7 telnet亂碼,CentOS7安裝配置telnet-server

1.安裝xinetd和telnet-serveryum -y install telnet-server xinetd2.啟服務(服務管理方式和CentOS6稍有區別)systemctl enable xinetd.serversystemctl enable telnet.socketsystemctl start telnet.socketsystemctl start xinetd.server注意:因為是由xinetd管理,這…

windows和linux存儲float,C語言float型數據在內存中的儲存方式

菜單導航/URHere/面包屑,通過CSS中的content簡潔表達代碼比如我們要寫一個菜單導航/URHere/面包屑,如: 首頁 > 個人中心 > 修改密碼 代碼: tolua雜記1 字符串調用luaFunc :DoString public class CallLuaFunction : MonoBehaviour { private…

Linux編譯C沒有文件名,crt1.o linux x64上沒有這樣的文件c編譯錯誤

我正在linux平臺上邁出第一步.我安裝了Centos x64.我正在嘗試構建一個包含幾個函數和幾個單元測試的小程序.我使用Netbeans 7.1.2作為開發環境.以下是構建過程的輸出:CLEAN SUCCESSFUL (total time: 671ms)"/usr/bin/gmake" -f nbproject/Makefile-Debug.…

linux nmap下載教程,Linux_在Linux系統上用nmap掃描SSL漏洞的方法,以下載nmap 6.45及以上版本。如 - phpStudy...

在Linux系統上用nmap掃描SSL漏洞的方法以下載nmap 6.45及以上版本。如果懶的重新安裝,可以直接下載ssl-heartbleed.nse 腳本。使用nmap 6.45掃描服務器心臟出血漏洞(heartbleed)的具體方法(步驟)如下:當然,你要先按好nmap,自己可以…

Linux的網絡協議族是什么,Linux 網絡協議的概述

網絡層協議網絡層協議主要包括 IP、ICMP(網絡控制報文協議)、ARP(地址解析協議)IP協議該協議被設計成互聯分組交換通信網,以形成一個網際通信環境。它負責在源主機和目的地主機之間傳輸來自其較高層軟件的稱為數據報文的數據塊,它在源和目的地之間提供非…

linux百度文字識別,基于Linux平臺的圖片文字識別系統

摘要:圖片文字識別OCR(Optical Character Recognition,光學字符識別)應用非常廣泛。例如DNA序列圖片識別;PDF文字識別;車牌號碼自動識別;手機上的手寫輸入識別等。近年來該應用更加廣泛,必然出現在教育領域的一款手機應用,將手機把試卷拍照查詢答案,首先就是圖片文字…

zenmap掃描出來linux,如何在Linux上使用NMAP安全掃描器

Nmap是一個免費的開源網絡發現和安全審計實用程序,在Linux用戶社區中被廣泛使用,因為它使用起來非常強大。 Nmap通過在特定目標(通過IP)發送數據包,并通過解釋傳入的數據包來確定哪些帖子被打開/關閉,掃描系統上運行什么服務&…

linux上的中國象棋游戲下載,中國象棋下載_中國象棋最新下載_玩一玩游戲

中國象棋是起源于中國,的一種棋類游戲,屬于兩個人之間的對抗,在中國有著悠久的歷史。由于它的器皿簡單,趣味性強,它已經成為一種非常受歡迎的棋類活動。中國象棋是中華民族的文化瑰寶,歷史悠久,…

c語言字面量的作用是為變量,C語言(五) C 全局變量,局部變量,靜態變量和常量...

一. 全局變量全局變量是在所有函數體的外部定義的,程序的所有部分(其他文件的代碼)都可以使用。全局變量不受作用域的影響。全局變量的生命周期一直到程序的結束,全局變量是靜態存儲方式。例:#include #include /* a 就是一個全局變量*/int a…

河南理工大學c語言報告封面,河南理工大學圖書信息管理系統設計_純c語言課程設計.doc...

河南理工大學圖書信息管理系統設計_純c語言課程設計C語言課程設計報告題 目:圖書信息管理系統設計河南理工大學計算機學院目 錄第一章 題目與要求1.1 問題提出11.2 本系統涉及的知識點11.3 功能要求1第二章 功能設計2.1 算法設計12.2 部分模塊流程圖4第三章 程序代碼…