亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 145
粉絲 7
評論 7
訪問量 198615
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
PHP基礎(chǔ)知識:類(封裝、繼承、多態(tài))和抽象類、接口類
李東亞1??3????12?
原創(chuàng)
1169人瀏覽過

類代碼練習(xí)

1、代碼練習(xí)

  1. <?php
  2. class A
  3. {
  4. //類通過protected和private關(guān)鍵字來封裝
  5. public $name='ldy';
  6. protected $sex='男';
  7. protected $age=28;
  8. public static $course='PHP中文網(wǎng)';
  9. public function getName(){
  10. return __CLASS__.'=>'.__METHOD__;
  11. }
  12. protected function getClass(){
  13. return __CLASS__.':'.$this->getcountvar().'個(gè)屬性';
  14. }
  15. private function getcountvar(){
  16. return count(get_class_vars(__CLASS__));
  17. }
  18. }
  19. // 繼承/擴(kuò)展
  20. class B extends A
  21. {
  22. public static $work='銷售';
  23. // 修改父類中的訪問權(quán)限遵循:子類的訪問權(quán)限必須大于等于父類;public≥protected≥private
  24. // 重寫
  25. public function getClass(){
  26. return parent::getClass().';'.static::$work;
  27. }
  28. // 多態(tài)
  29. public static function get(){
  30. return '調(diào)用靜態(tài)函數(shù)'.__METHOD__;
  31. }
  32. }
  33. echo B::$course.B::$work,'<br>';
  34. echo B::get(),'<br>';
  35. $b=new B();
  36. echo $b->getName(),'<br>';
  37. echo $b->getClass(),'<br>';
  38. echo '<hr>';
  39. //抽象類
  40. abstract class C
  41. {
  42. //類通過protected和private關(guān)鍵字來封裝
  43. public $name='ldy';
  44. protected $sex='男';
  45. protected $age=28;
  46. public static $course='PHP中文網(wǎng)';
  47. public function getName(){
  48. return __CLASS__.'=>'.__METHOD__;
  49. }
  50. abstract protected function getClass();
  51. abstract protected function getcountvar();
  52. }
  53. // 繼承/擴(kuò)展
  54. class D extends C
  55. {
  56. public static $work='銷售';
  57. // 修改父類中的訪問權(quán)限遵循:子類的訪問權(quán)限必須大于等于父類;public≥protected≥private
  58. // 重寫
  59. // 多態(tài)
  60. public static function get(){
  61. return '調(diào)用靜態(tài)函數(shù)'.__METHOD__;
  62. }
  63. function getClass(){
  64. return __CLASS__.':'.$this->getcountvar().'個(gè)屬性'.static::$work;
  65. }
  66. function getcountvar(){
  67. // 父類中的私有變量在繼承中是無法直接繼承的
  68. return count(get_class_vars(__CLASS__));//返回私有變量不參與計(jì)算
  69. }
  70. }
  71. $b=new D();
  72. echo $b->getName(),'<br>';
  73. echo $b->getClass(),'<br>';
  74. // echo $b->getcountvar(),'<br>';
  75. echo '<hr>';
  76. //接口類
  77. interface F
  78. {
  79. const CITY='鄭州';
  80. public static function get();
  81. }
  82. class G implements F{
  83. private $word='測試';
  84. public static function get(){
  85. return '我在'.F::CITY;
  86. //return '我在'.F::CITY.$this->word;靜態(tài)方法無法直接調(diào)用類中的屬性
  87. }
  88. // 訪問私有變量
  89. public function getP(){
  90. return $this->word;
  91. }
  92. }
  93. echo F::CITY,'<br>';
  94. echo G::get(),"<br>";
  95. echo (new G)->getP();

2、演示結(jié)果

總結(jié)

1、self: 引用當(dāng)前, $this: 引用當(dāng)前實(shí)例;例如:new self()$this->var;A extends B{}:A類繼承于B類;
2、global關(guān)鍵字聲明訪問外部變量;
3、static:靜態(tài)方法不允許使用$this;只能訪問靜態(tài)成員: 靜態(tài)屬性, 靜態(tài)方法;
4、static::$courseself::$scourse的區(qū)別是,self只認(rèn)定義的類,static可以區(qū)分(父和子),作用于實(shí)列類執(zhí)行
5、類中訪問限制(封裝):public|protected|private;同一個(gè)類中的方法可以訪問類中所有的方法和屬性
6、 二類成員: 子類有權(quán)訪問的父類成員類型, public, protected
7、三種操作: 子類對父類的三種操作: 繼承, 重寫, 擴(kuò)展
8、類的三個(gè)特性:

  1. 1. 繼承: 父類的二類成員自動(dòng)成為子類的成員
  2. 2. 重寫: 覆寫與父類/基類同名的成員(屬性, 方法)
  3. 3. 擴(kuò)展: 子類添加自身的方法來增加/擴(kuò)展父類的功能

9、final:類不可繼承,方法不可重寫
10、abstract聲明抽象類(與其他類對比可以有抽象方法);
11、interface:聲明接口;implements:繼承接口類;接口允許多繼承

批改老師:天蓬老師天蓬老師

批改狀態(tài):合格

老師批語:除了寫對, 還要記住使用場景
本博文版權(quán)歸博主所有,轉(zhuǎn)載請注明地址!如有侵權(quán)、違法,請聯(lián)系admin@php.cn舉報(bào)處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務(wù)協(xié)議
0條評論
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)