//静态关键字的使用static
//类里面的普通成员是属于对象的,不是属于类的(调用的时候是用对象调用)
//什么叫做静态的:类静态成员是属于类的,不是属于每个对象的
//定义静态成员用static关键字修饰
//静态(函数)方法里面无法调用普通成员
//静态(函数)方法可以调用静态成员,使用self关键字来调用
//self代表该类,$this代表该对象
class Person
{
public static $nation; //静态成员变量
public $name;
public $sex;
private $age;
function __construct($name="",$sex="男",$age=12) //构造函数
{
$this->name=$name;
$this->sex=$sex;
$this->age=$age;
}
static function jump() //静态方法不能调用普通成员,只能调用静态成,使用self::
{
echo "民族:".self::$nation;
}
function say() //普通方法(函数)也能调用静态成员,使用self::$属性名
{
echo "民族:".self::$nation.";姓名:".$this->name.";年龄:".$this->age;
}
}
$p=new Person("孔二","男",30);
Person::$nation="汉族"; //类外部调用静态成员与函数 类名::$属性名
Person::jump(); //类名::静态方法名()
echo "<br>";
$p->say();
var_dump($p);
class China extends Person //编写一个子累,关键字:extends
{
public static $date;
static function run()
{
echo "民族:".self::$nation.";日期:".self::$date;
}
function say() //子类对父类方法的重写
{
parent::jump();
echo $this->name."说汉语";
}
}
$c=new China("张小五","女",36);
China::$date="2016-4-29";
China::run();
echo "<br>";
$c->say();
var_dump($c);