1.类的继承三大功能:
(1).封装
(2).继承
(3).多态
关键字:extends
实例演示:子类继承父类,并修改添加父类的方法
<?php
class user
{
public $name='刘德华';
public $age=45;
protected $meny=3000;
private $ment='T1程序员';
/**
* 根据工龄,工资逐步调高
*@$var 最初的入职时间
*@$res 最初的工资
*/
public function meny()
{
$var=$this->age;
$res=$this->meny;
if($var<=60){
for($i=$var;$i<=60;$i++){
$res=$res+$res*0.05;
}
}
return $this->name.'到退休后一共有多少工资'.$res;
}
}
$obj=new user();
echo $obj->meny();
// var_dump($obj);
/**
* 入职后表现较好,老板涨了基本工资,
* 但是由于效益不好工资涨幅下调
*/
class user1 extends user
{
public $meny=5000;
public function meny1()
{
if($this->age <=60){
for($i=$this->age;$i<=60;$i++){
$this->meny=$this->meny+$this->meny*0.3;
}
}
return '实际'.parent::meny();
}
}
echo '<hr>';
$obj1=new user1();
echo $obj1->meny1();
?>
输出结果:
2.抽象类的作用与实现
作用:抽象类不能实例化,只能由子类继承并完成父类的抽象方法,主要目的是要求子类遵循父类的规则。
关键字:abstract
实例演示:
<?php
abstract class user
{
public $name='刘德华';
public $age=45;
protected $meny=3000;
private $ment='T1程序员';
/**
* 根据工龄,工资逐步调高
*@$var 最初的入职时间
*@$res 最初的工资
*/
public function meny()
{
$var=$this->age;
$res=$this->meny;
if($var<=60){
for($i=$var;$i<=60;$i++){
$res=$res+$res*0.05;
}
}
// echo $this->ment;
return $this->name.'到退休后一共有多少工资'.$res;
}
abstract public function tmeny();
}
// $obj=new user();
// echo $obj->meny();
// var_dump($obj);
/**
* 入职后表现较好,老板涨了基本工资,
* 但是由于效益不好工资涨幅下调
*/
class user1 extends user
{
public $kiss='T1高级工程师';
public $meny=5000;
public function meny1()
{
if($this->age <=60){
for($i=$this->age;$i<=60;$i++){
$this->meny=$this->meny+$this->meny*0.3;
}
}
return '实际'.parent::meny();
}
public function tmeny()//实现父类中的抽象方法
{
echo '<hr>';
return $this->name.'由于表现非常好,晋升为'.$this->kiss;
}
}
echo '<hr>';
$obj1=new user1();
echo $obj1->meny1();
echo $obj1->tmeny();
?>
输出结果:
3.接口的作用与实现
作用:完全完成设计与分定义接口类类,从而实现php的多继承
关键字:interface 定义接口类;implements 继承接口类
实例演示:
<?php
// echo 1111;
interface iUser
{
const SHOP_ID='KB-4白金冠军版球鞋';
public function res();
}
class user implements iUser
{
public $name='周星驰';
public function res()
{
return $this->name.'拥有一双'.iUser::SHOP_ID;
}
}
$obj=new user;
echo $obj->res();
?>
输出结果: