Blogger Information
Blog 70
fans 4
comment 5
visits 103800
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
关于类继承的三大功能和抽象类的作用与实现和接口的基本语法
JiaJieChen
Original
1067 people have browsed it

类的三大功能

序号 名称 说明
1 继承 extends 父类的二类成员自动成为子类的成员
2 重写 覆写与父类/基类同名的成员(属性, 方法)
3 拓展 子类添加自身的方法来增加/扩展父类的功能

序号 封装 说明
1 public 公开成员,默认值, 类外部, 类内部, 以及类的子类中(类的继承上下文环境中)
2 proteced 受保护的成员, 类外部禁止访问, 但是类的内部以及它的继承上下文中可以访问
3 private 私有成员, 除了当前类可以访问, 类的外部以及类的继承上下文中都禁止访问

1.继承 : 子类继承基类的成员

       
  1. php
  2. // 基类 Demo
  3. // public: 公开成员
  4. // protected: 受保护的成员
  5. //private: 私有成员
  6. classDemo
  7. {
  8. //受保护成员 $name
  9. protected$name='iphone11';
  10. //受保护成员 $system
  11. protected$system='ios';
  12. //公开成员 $price
  13. public$price=5888;
  14. //函数 items() 拼接类成员
  15. publicfunctionitems()
  16. {
  17. return"手机:{$this->name} , 系统:{$this->system} , 价格:{$this->price}";
  18. }
  19. }
  20. //子类 US 继承 父类 Demo 里面的成员,
  21. classUSextendsDemo
  22. {
  23. }
  24. //对象 $acc
  25. $acc=newUS;
  26. echo $acc->items();
  27. //输出结果
  28. //手机:iphone11 , 系统:ios , 价格:5888
  29. ?>

2.重写与基类同名的成员

       
  1. php
  2. // 父类 Demo
  3. // public: 公开成员
  4. // protected: 受保护的成员
  5. //private: 私有成员
  6. classDemo
  7. {
  8. //受保护成员 $name
  9. protected$name='iphone11';
  10. //受保护成员 $system
  11. protected$system='ios';
  12. //公开成员 $price
  13. public$price=5888;
  14. //函数 items() 拼接类成员
  15. publicfunctionitems()
  16. {
  17. return"手机:{$this->name} , 系统:{$this->system} , 价格:{$this->price}";
  18. }
  19. }
  20. //子类 US 继承 父类 Demo 里面的成员,
  21. //我们将在子类重写基类
  22. classUSextendsDemo
  23. {
  24. // 属性价格重写 5888-> 6888
  25. public$price=6888;
  26. //属性内容重写
  27. publicfunctionitems2()
  28. {
  29. returnparent::items().",太贵了买不起~";
  30. }
  31. }
  32. //对象 $acc
  33. $acc=newUS;
  34. echo $acc->items2();
  35. //输出结果
  36. //手机:iphone11 , 系统:ios , 价格:6888,太贵了买不起~
  37. ?>

3.拓展:子类添加自身的方法来增加

       
  1. php
  2. // 父类 Demo
  3. // public: 公开成员
  4. // protected: 受保护的成员
  5. //private: 私有成员
  6. classDemo
  7. {
  8. //受保护成员 $name
  9. protected$name='iphone11';
  10. //受保护成员 $system
  11. protected$system='ios';
  12. //公开成员 $price
  13. public$price=5888;
  14. //函数 items() 拼接类成员
  15. publicfunctionitems()
  16. {
  17. return"手机:{$this->name} , 系统:{$this->system} , 价格:{$this->price}";
  18. }
  19. }
  20. //子类 US 继承 父类 Demo 里面的成员,
  21. //我们将在子类重写基类
  22. classUSextendsDemo
  23. {
  24. //1.重写
  25. // 属性价格重写 5888-> 6888
  26. public$price=6888;
  27. //属性内容重写
  28. publicfunctionitems2()
  29. {
  30. returnparent::items().",太贵了买不起~";
  31. }
  32. //2.拓展
  33. //折扣 0.9
  34. public$discount=0.9;
  35. publicfunctionitems3()
  36. {
  37. returnparent::items().",太贵了买不起~给打{$this->discount}折";
  38. }
  39. }
  40. //对象 $acc
  41. $acc=newUS;
  42. echo $acc->items3();
  43. //输出结果
  44. //手机:iphone11 , 系统:ios , 价格:6888,太贵了买不起~给打0.9折?>

抽象类的作用与实现

       
  1. php
  2. // 抽象类 abstract Demo
  3. abstractclassDemo
  4. {
  5. protected$name="张启灵";
  6. protected$age=26;
  7. protectedfunctionflgure()
  8. {
  9. return"姓名:{$this->name},年龄:{$this->age}";
  10. }
  11. abstractprotectedfunctionflgure2();
  12. }
  13. //抽象类不能直接实例化
  14. abstractclassOSextendsDemo
  15. {
  16. protected$professional='盗墓贼';
  17. protectedfunctionflgure2()
  18. {
  19. returnparent::flgure().",职业:{$this->professional}";
  20. }
  21. }
  22. //最终用工作类实例化抽象类Demo
  23. classUSaextendsOS
  24. {
  25. publicfunctionflgure2()
  26. {
  27. returnparent::flgure2();
  28. }
  29. }
  30. $abc=newUSa;
  31. echo $abc->flgure2();
  32. //输出结果
  33. //姓名:张启灵,年龄:26,职业:盗墓贼
  34. ?>

接口的基本语法

       
  1. php
  2. // 接口关键字 :interface
  3. interfaceDemo
  4. {
  5. constNATION="中国";
  6. publicstaticfunctionobj();
  7. }
  8. classOSimplementsDemo
  9. {
  10. publicstatic$name='吴邪';
  11. publicstaticfunctionobj()
  12. {
  13. returnself::$name."国籍:".Demo::NATION;
  14. }
  15. }
  16. echo OS::obj();
  17. //输出结果
  18. //吴邪国籍:中国
  19. ?>

有很多地方非常不熟练,还得做很多实际操作才行,感谢老师和平台!

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:这些都是老码农的吐血总结 , 值得收藏和学习
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply withNews Comment Service Agreement
0 comments
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!