php 面向对象之继承、多态和静态方法

<?php

//继承;子类可以继承父类的一切
//特点:单继承

//父类
class 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();*/


//var_dump($a);

//多态
//条件:1.必须要继承。2.子类要对父类的方法进行重写。3.父类引用指向子类实例
//概念:当父类的引用指向子类实例的时候,由于子类对父类的方法进行了重写,父类引用在调用相应的方法的时候表现出来的不同。
/*
Ren r = new China();
r->Say();

r = new Amreica();
r->Say();*/

$r = new America();
$r->Say();

$r = new China(); 
$r->Say();




?>
继承和多态
<?php

/*class FenBi
{
    public $length; //属于对象的
    public static $color='red'; //属于类的,静态
    
    //返回数据库的连接对象
    public static function LianJie()
    {
        FenBi::$color;
        return "连接对象";
    }
    public function Test()
    {
        echo FenBi::$color;
    }
}*/

/*FenBi::$color;
FenBi::LianJie();*/
/*
$r = new FenBi();
$r->Test();*/

//普通成员是属于对象的
//静态成员是属于类的

//普通成员方法里面可以调用静态成员
//静态方法里面不能调用普通成员


class Form
{
    public static $bs=0;
    
    public function show()
    {
        echo "显示窗体";
    }
    
    public function Close()
    {
        Form::$bs=1;
        echo "窗体关闭";
    }
    
    public function shownext()
    {
        $f2 = new Form();
        return $f2;
    }
    
    public function JianCe()
    {
        if(Form::$bs==0)
        {
            echo "F2没有关闭";
        }
        else
        {
            echo "F2已经关闭";
        }
    }
}


$f1 = new Form();
$f1->show();

echo Form::$bs;

$f2 = $f1->shownext();
$f2->show();
$f2->Close();

echo Form::$bs;

$f1->JianCe();


?>
静态方法

 

posted @ 2016-06-06 18:59  哔哩哔哩干杯  阅读(206)  评论(0编辑  收藏  举报