<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2015/11/23
 * Time: 11:14
 * 类的继承关系实例
 */
//建筑类
class building
{
    function fly()
    {
        //建筑飞行的代码
        echo "飞起来了<br>";
    }
    function didanggongji()
    {
        //建筑飞行的代码
        echo "抵挡攻击<br>";
    }
}
//兵营类
class marineBuilding extends building
{
    function createMarine()
    {
        //制造机枪兵的代码
        echo "又抓了一个壮丁来了";
        //同时飞起来
        parent::didanggongji();
    }
}
//坦克房类
class tankBuilding extends building
{
    function createTank()
    {
        //制造坦克的代码
        echo "又制造了一辆坦克";
    }
}
$shibin1 = new marineBuilding();
$shibin1->createMarine();
echo "<hr>";
$tanke = new tankBuilding();
$tanke->fly();
$tanke->createTank();
class groundArmy
{
    public $attackNumber = 5;
}
//机枪兵
class marine extends groundArmy
{
    public $attackNumber = 10; //攻击力的数字
}
echo "<hr>";
$m1 = new marine();//新建一个机枪兵
echo $m1->attackNumber;//显示攻击力为10
//函数重载
class concealAbility
{
    public $energy = 150;
    //这个函数表示隐形的运行代码
    function conceal()
    {
        //隐形的运行代码
        echo "父类隐身代码";
    }
}
//鬼兵类
class ghost extends concealAbility
{
    public $energy = 150;
    //这个函数表示隐形的运行代码
    function conceal()
    {
        //隐形的运行代码
        //减少鬼兵的能量,$this表示当前对象,也就是当前这个鬼兵
        $this->energy -= 25;
    }
}
//人类
class pelies extends concealAbility
{
    //直接继承父类
}
//黑暗圣堂类
class DarkTemplar extends concealAbility
{
    //这个函数表示隐形的运行代码
    function conceal()
    {
        //隐形的运行代码,不影响能量
        echo "黑暗圣堂隐身...";
    }
}
//新建一个鬼兵
$g1 = new ghost();
//显示能量为150
echo "<hr>";
echo $g1->energy;
//鬼兵隐形
$g1->conceal();
//显示能量为125
echo $g1->energy;
//新建一个黑暗圣堂
$d1 = new DarkTemplar();
//黑暗圣堂隐形,他没有能量属性
$d1->conceal();
$pe1 = new pelies();
$pe1->conceal();
echo $pe1->energy;
echo "接口<br>";