偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

正確理解PHP抽象類應(yīng)用

開發(fā) 后端
PHP抽象類應(yīng)用的意義在于不能從抽象類中創(chuàng)建對(duì)象,它通常都具有抽象方法,而方法中沒(méi)有大括號(hào)。今天我們就為大家具體講解這方面的知識(shí)。

對(duì)于PHP程序員來(lái)說(shuō),最為難掌握的一點(diǎn)要數(shù)PHP抽象類應(yīng)用這一塊知識(shí)點(diǎn)。作為一個(gè)新手其實(shí)也還沒(méi)有到要用面向?qū)ο蟮闹R(shí)去編程,但以后進(jìn)行開發(fā),使用類進(jìn)行封裝或者使用接口之類,把程序進(jìn)行各種模塊式的開發(fā),這當(dāng)然是必然的。#t#

在自然語(yǔ)言中,我們理解抽象的概念是,一個(gè)物體的一種大的描述,這種描述對(duì)某類物體來(lái)說(shuō)是共有的特性。那么在PHP中也是一樣的,我們把一個(gè)類進(jìn)行抽象,可以指明類的一般行為,這個(gè)類應(yīng)該是一個(gè)模板,它指示它的子方法必須要實(shí)現(xiàn)的一些行為。

PHP抽象類應(yīng)用的定義:

abstract class ClassName{

}

PHP抽象類應(yīng)用要點(diǎn):

1.定義一些方法,子類必須完全實(shí)現(xiàn)這個(gè)抽象中所有的方法
2.不能從抽象類創(chuàng)建對(duì)象,它的意義在于被擴(kuò)展
3.抽象類通常具有抽象方法,方法中沒(méi)有大括號(hào)

PHP抽象類應(yīng)用重點(diǎn):

1.抽象方法不必實(shí)現(xiàn)具體的功能,由子類來(lái)完成
2.在子類實(shí)現(xiàn)抽象類的方法時(shí),其子類的可見(jiàn)性必須大于或等于抽象方法的定義
3.抽象類的方法可以有參數(shù),也可以為空
4.如果抽象方法有參數(shù),那么子類的實(shí)現(xiàn)也必須有相同的參數(shù)個(gè)數(shù)

PHP抽象類應(yīng)用示例:

abstract public function_name(); //注意沒(méi)有大括號(hào)

作為演示,我們來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的抽象類:計(jì)算矩形的面積。這個(gè)矩形可以從形狀類擴(kuò)展。

  1. < ?PHP   
  2. abstract class Shape {   
  3. abstract protected function get_area();   
  4. //和一般的方法不同的是,這個(gè)方法沒(méi)有大括號(hào)   
  5. //你不能創(chuàng)建這個(gè)抽象類的實(shí)例:$Shape_Rect
     = new Shape();   
  6. }   
  7. class Rectangle extends Shape{   
  8. private $width;   
  9. private $height;   
  10. function __construct($width=0,
    $
    height=0){   
  11. $this->width=$width;   
  12. $this->height=$height;   
  13. }   
  14. function get_area(){   
  15. echo ($this->width+$this->height)*2;   
  16. }   
  17. }   
  18. $Shape_Rect = new Rectangle(20,30);   
  19. $Shape_Rect->get_area();   
  20. ?>   
  21. < ?PHP  
  22. abstract class Shape {  
  23. abstract protected function get_area();  
  24. //和一般的方法不同的是,這個(gè)方法沒(méi)有大括號(hào)  
  25. //你不能創(chuàng)建這個(gè)抽象類的實(shí)例:$Shape_Rect 
    new Shape();  
  26. }  
  27. class Rectangle extends Shape{  
  28. private $width;  
  29. private $height;  
  30. function __construct($width=0,$height=0){  
  31. $this->width=$width;  
  32. $this->height=$height;  
  33. }  
  34. function get_area(){  
  35. echo ($this->width+$this->height)*2;  
  36. }   
  37. }  
  38. $Shape_Rect = new Rectangle(20,30);  
  39. $Shape_Rect->get_area();  
  40. ?> 

這也算是一個(gè)簡(jiǎn)單的例子,基本上可以說(shuō)明PHP中抽象類的用法了,其他的不想多說(shuō)了。個(gè)人覺(jué)得抽象類一般在大的項(xiàng)目才會(huì)用吧,因?yàn)槲矣X(jué)得它實(shí)在是要遵守的”規(guī)矩”太多了,用起來(lái)不方便!當(dāng)然這只是我的意見(jiàn)。還想多說(shuō)一些,PHP抽象類應(yīng)用是單繼承的,也就是說(shuō)你只能從一個(gè)類繼承,而不能一個(gè)類繼承了A類,又繼承B類,如果要實(shí)現(xiàn)這樣的功能,得使用接口相關(guān)的知識(shí)了,在此暫時(shí)不討論P(yáng)HP接口的知識(shí)!一句話:?jiǎn)卫^承多接口中!

責(zé)任編輯:曹凱 來(lái)源: helpphp.cn
相關(guān)推薦

2009-12-04 18:00:46

PHP開發(fā)MVC模型

2009-12-09 14:04:45

PHP include

2009-12-03 18:07:47

PHP轉(zhuǎn)義

2009-12-04 17:16:41

PHP析構(gòu)函數(shù)

2009-12-02 14:55:46

PHP抽象類abstr

2009-06-18 10:29:24

Hibernate I

2009-12-14 17:48:46

Ruby String

2020-01-07 15:10:32

Linuxinode命令

2010-07-20 12:35:33

SQL Server索

2010-02-01 10:54:37

C++框架

2024-01-29 00:35:00

Go并發(fā)開發(fā)

2023-12-27 19:52:08

Go模塊命令

2009-12-03 15:31:30

PHP獲取顯示數(shù)據(jù)庫(kù)數(shù)

2009-04-20 09:09:46

PHP錯(cuò)誤信息錯(cuò)誤代碼

2010-02-04 15:05:00

C++ cpuid指令

2010-01-18 17:29:35

VB.NET函數(shù)調(diào)用

2009-12-16 10:33:31

Ruby更新文件

2009-12-17 11:36:55

Ruby輸入輸出

2009-12-16 17:00:43

Ruby on Rai

2013-08-06 10:40:38

大數(shù)據(jù)數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)