批改状态:合格
老师批语:接口是api的抽象层, 与具体实现无关
<?phpclass Ren{public $name;public $sex;public $yuyan;function Say(){echo $this->name."正在讲话!";}}//美国人的子类class America extends Ren{public $ziben;//子类对父类的方法重写function Say(){parent::Say(); //调用父类的Say()方法echo "hello !";}}//中国人的子类class China extends Ren{public $shehui;public $wumai;//对父类方法重写function Say(){echo "你好!";}}$c = new China();$c->Say();?>
结果:你好
<?php
abstract class ren {
public abstract function getUserInfo ();
public abstract function getWalletInfo ();}class xuesheng extends ren {public function getUserInfo () {echo 'getinfo';}public function getWalletInfo () {echo 'getwalletInfo';}}$Tom = new xuesheng ();$Tom -> getUserInfo();$Tom -> getWalletInfo ();
?>
结果:getinfogetwalletInfo
<?php// 声明一个'iTemplate'接口interface iTemplate{public function setVariable($name, $var);public function getHtml($template);}class Template implements iTemplate{private $vars = array();public function setVariable($name, $var){$this->vars[$name] = $var;}public function getHtml($template){foreach($this->vars as $name => $value) {$template = str_replace('{' . $name . '}', $value, $template);}return $template;}}?>
1.继承并不改变类的结构。而是表名了两个类之间存在着某种关系,使得其中的成员看起来像是在别的类中存在。
2.定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。(抽象类可以没有抽象方法,但是抽象类依然不能被实例化)被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。
3.接口(interface)是一种类似于类的结构,可用于声明实现类所必须声明的方法,例如接口通常用来声明api,而不是用来定义如何实现这个api。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号