Blogger Information
Blog 18
fans 0
comment 0
visits 13238
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP基础知识类继承的三大功能/抽象类的作用与实现/接口的基本语法学习小结
马晓宁
Original
736 people have browsed it

1. 类继承的三大功能: 继承,重写,扩展

继承: 父类的二类成员自动成为子类的成员

重写: 覆写与父类/基类同名的成员(属性, 方法)

扩展: 子类添加自身的方法来增加/扩展父类的功能

  1. <?php
  2. class Ren
  3. {
  4. public $name;
  5. public $sex;
  6. public $yuyan;
  7. function Say()
  8. {
  9. echo $this->name."正在讲话!";
  10. }
  11. }
  12. //美国人的子类
  13. class America extends Ren
  14. {
  15. public $ziben;
  16. //子类对父类的方法重写
  17. function Say()
  18. {
  19. parent::Say(); //调用父类的Say()方法
  20. echo "hello !";
  21. }
  22. }
  23. //中国人的子类
  24. class China extends Ren
  25. {
  26. public $shehui;
  27. public $wumai;
  28. //对父类方法重写
  29. function Say()
  30. {
  31. echo "你好!";
  32. }
  33. }
  34. $c = new China();
  35. $c->Say();
  36. ?>

结果:你好


2. 抽象类的作用与实现

<?php
abstract class ren {
public abstract function getUserInfo ();

  1. public abstract function getWalletInfo ();
  2. }
  3. class xuesheng extends ren {
  4. public function getUserInfo () {
  5. echo 'getinfo';
  6. }
  7. public function getWalletInfo () {
  8. echo 'getwalletInfo';
  9. }
  10. }
  11. $Tom = new xuesheng ();
  12. $Tom -> getUserInfo();
  13. $Tom -> getWalletInfo ();

?>
结果:getinfogetwalletInfo


3. 接口的基本语法

  1. <?php
  2. // 声明一个'iTemplate'接口
  3. interface iTemplate
  4. {
  5. public function setVariable($name, $var);
  6. public function getHtml($template);
  7. }
  8. class Template implements iTemplate
  9. {
  10. private $vars = array();
  11. public function setVariable($name, $var)
  12. {
  13. $this->vars[$name] = $var;
  14. }
  15. public function getHtml($template)
  16. {
  17. foreach($this->vars as $name => $value) {
  18. $template = str_replace('{' . $name . '}', $value, $template);
  19. }
  20. return $template;
  21. }
  22. }
  23. ?>

总结:

1.继承并不改变类的结构。而是表名了两个类之间存在着某种关系,使得其中的成员看起来像是在别的类中存在。
2.定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。(抽象类可以没有抽象方法,但是抽象类依然不能被实例化)被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。
3.接口(interface)是一种类似于类的结构,可用于声明实现类所必须声明的方法,例如接口通常用来声明api,而不是用来定义如何实现这个api。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:接口是api的抽象层, 与具体实现无关
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 with News Comment Service Agreement
0 comments
Author's latest blog post