博客列表 >PHP基础知识类继承的三大功能/抽象类的作用与实现/接口的基本语法学习小结

PHP基础知识类继承的三大功能/抽象类的作用与实现/接口的基本语法学习小结

马晓宁
马晓宁原创
2020年05月04日 12:14:54750浏览

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。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议