奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

php語言

PHP面向對象的進階學習

時間:2024-09-06 05:26:14 php語言 我要投稿
  • 相關推薦

PHP面向對象的進階學習

  PHP面向對象的進階學習,主要包括抽像類、接口、final、類常量的一些資料。

PHP面向對象的進階學習

  一、抽像類(abstract)

  在我們實際開發過程中,有些類并不需要被實例化,如前面學習到的一些父類,主要是讓子類來繼承,這樣可以提高代碼復用性

  語法結構:

  復制代碼 代碼如下:

  abstract class 類名{

  屬性 $name;

  方法(){} //方法也可以為abstract 修飾符 function 方法名(){}

  }

  例:

  復制代碼 代碼如下:

  abstract class animal{

  public $name;

  public $age;

  //抽象方法不能有方法體,主要是為了讓子類去實現;

  abstract public function cry();

  //抽象類中可以包含抽象方法,同時也可以包含實例類方法

  public function getname(){

  echo $this->name;

  }

  }

  class Cat{

  public function cry(){

  echo 'ok';

  }

  }

  理解:動物類,實際上是一個抽象的概念,它規定了一些動物有些哪共同的屬性和行為,但實際上它自己并沒收有那些屬性和行為。再比如:交通工具類,植物類等等

  注意:

  1、如果一個類用了abstract來修飾,則該類就是一個抽象類,如果一個方法被abstract修飾,那么該方法就是一個抽象方法,抽象方法不能有方法體=> abstract function cry(); 連{}也不可以有

  2、抽象類一定不能被實例化,抽象類可以沒有抽象方法,但是如果一個類包含了任意一個抽象方法,這個類一定要聲明為abstract類;

  3、如果一個類繼承了另一個抽象類,則該子類必須實現抽象類中所有的抽象方法(除非它自己也聲明為抽象類);

  二、接口(interface)

  接口就是將一些沒有實現的方法,封裝在一起,到某個類要用的時候,再根據具體情況把這些方法寫出來;

  語法結構

  interface 接口名{

  //屬性、方法

  //接口中的方法都不能有方法體;

  }

  如何實現接口

  class 類名 implements 接口名{

  }

  理解:接口就是更加抽象的抽象類,抽象類里的方法可以有方法體,但是接口中的方法必須沒有方法體。接口實現了程序設計的多態和高內聚、低偶合的設計思想;

  例:

  復制代碼 代碼如下:

  //接口是定義規范、屬性的,一般以小寫的i開頭;

  interface iUsb{

  public function start();

  public function stop();

  }

  //編寫相機類,讓它去實現接口

  //當一個類實現了某個接口,那么該類就必須實現接口的所有方法

  class Camera implements iUsb{

  public function start(){

  echo 'Camera Start Work';

  }

  public function stop(){

  echo 'Camera Stop Work';

  }

  }

  //編寫一個手機類

  class Phone implements iUsb{

  public function start(){

  echo 'Phone Satrt Work';

  }

  public function stop(){

  echo 'Phone Stop Work';

  }

  }

  $c=new Camera();

  $c->start();

  $p=new Phone();

  $p->start();

  什么時候使用接口:

  1、定下規范,讓其他程序員來實現

  2、當多個平級的類,都需要去實現某個功能,但是實現的方式不一樣;

  小結:

  1、接口不能被實例化,接口中所有的方法都不能有主體;

  2、一個類可以實現多個接口,以逗號(,)分隔 class demo implements if1,if2,if3{}

  3、接口中可以有屬性,但必須是常量,常量不可以有修飾符(默認是public修飾符)

  如:interface iUsb{

  const A=90;

  }

  echo iUsb::A;

  4、接口中的方法都必須是public的,默認是public;

  5、一個接口不能繼承其他的類,但是可以繼承其它的接口,一個接口可以繼承多個其它接口

  如:interface 接口名 extends if1,if2{}

  6、一個類可以在繼承父類的同時實現其它接口

  如:class test extends testbase implements test1,test2{}

  實現接口VS繼承類

  php的繼承是單一繼承,也就是一個類只能繼承一個父類,這樣對子類功能的擴展有一定的影響。實現接口可以看做是對繼承類的一個補充。繼承是層級的關系,不太靈活,而實現接口是平級的關系,實現接口可以在不打破繼承關系的前提下,對某個功能擴展,非常靈活。

  三、Final

  1、如果我們希望某個類不被其它的類繼承(比如為了安全原因等。。),那么可以考慮使用final

  語法:

  final class A{}

  2、如果我們希望某個方法,不被子類重寫,可以考慮使用final來修飾,final修飾的方法還是可以繼承的,因為方法的繼承權取決于public的修飾

  如:

  復制代碼 代碼如下:

  class A{

  final public function getrate($salary){

  return $salary*0.08;

  }

  }

  class B extens A{

  //這里父類的getrate方法使用了final,所以這里無法再重寫getrate

  //public function getrate($salary){

  // return $salary*0.01;

  //}

  }

  3、final不能用來修飾屬性

  四、類常量(const)

  在某些情況下,可能有這樣的需求:當不希望一個成員變量被修改,希望該變量的值是固定不變的,這時可以使用const常量(常量名應該全用大寫,并且不帶$符號,常量不可以加修飾符)

  語法:

  const 常量名=常量值; //必須賦初值,因為常量是不能修改的

  調用:

  類名::常量名[本類內部可用self::常量名] 或者 接口名::常量名 //接口中只能使用常量,不能使用變量

  如:

  復制代碼 代碼如下:

  class A{

  const TAX_RATE=0.08;

  function paytax($salary){

  return $salary*self::TAX_RATE;

  }

  }

  $a=new A();

  echo $a->paytax(100);

  注:

  1、常量可以被子類繼承

  2、常量是屬于某個類的,而不屬于某個對象

【PHP面向對象的進階學習】相關文章:

php面向對象全攻略 php5接口技術03-02

PHP面向對象程序設計之接口用法03-02

php學習筆記:類的聲明與對象實例化11-16

PHP對象Object的概念詳解11-16

java面向對象編程講解04-02

PHP編程:類和對象、方法調用11-27

Java面向對象三大特征詳解03-19

PHP是做什么的 如何學習PHP03-02

如何學習php語言12-02

主站蜘蛛池模板: 天津市| 东乡| 凤冈县| 新竹县| 深水埗区| 五峰| 平陆县| 桃江县| 平塘县| 合江县| 五峰| 玛沁县| 全椒县| 汉阴县| 沿河| 积石山| 茌平县| 苍梧县| 红桥区| 临夏市| 上杭县| 随州市| 炉霍县| 拉萨市| 柳州市| 苍南县| 肇庆市| 诸城市| 措美县| 崇礼县| 轮台县| 洛隆县| 休宁县| 崇义县| 建湖县| 精河县| 白银市| 马尔康县| 布拖县| 博湖县| 门头沟区|