这一节我们主要讲关键词extends和重载.
继承是面向对象的一个核心,我们可以通过定义一个具有基本功能的父类,然后根据需求,在子类中添加新的功能并包含基类中具有的基本功能,我们这里会用到extends关键词(php使用的是单一继承,如a继承b,b又继承c,则c就是父类,b具备了a的所有功能,并可以添加自己功能,c拥有了b的所有功能,并且c也可以添加自己功能)
我们可以看一下这个例子
<?php
class root{
function RootSay(){
return "我是父类";
}
}
class son extends root{
function SonSay(){
return $this->RootSay()."我是子类";
?>
下面例子中输出结果是
我是父类
我是子类我是子类
我是父类我是子类我是第二个子类
从上面例子我们可以很清楚看到son继承了root的内容,son2继承son和root的内容
我们在回头看上面这个例子,三个类用了三个方法,那如果有100个类你要想100个方法名?这显然不现实.这时我们引入了方法重载这个概念,我们可以通过类名::方法名来调用不同方法.请看下面这段代码
<?phpclass root{
function RootSay(){
return "我是父类";
}
}
class son extends root{
function RootSay(){
return root::Rootsay()."我是子类";
}
}
class son2 extends son{
function RootSay(){
return root::Rootsay().son::Rootsay()."我是第二个子类";//第一个root::Rootsay()输出结果是我是父类,第二个son::Rootsay()输出结果是我是父类我是子类
}
}
$p=new son2();
echo $p->RootSay();
?>
输出结果是:我是父类我是父类我是子类我是第二个子类
上面的注释已经解释了这段代码是如何执行的,这里就不再罗嗦.下一节我会来和大家讲一讲public,protected,private这三个关键词
转载请注明来自multifeeling