标签:
/*class Info
{
const p =10; //将某些常用的常量表示出来,出了类访问不到
public static $class; //定义为静态的
public $code;
protected $name;
private $sex;
static function Test() //静态方法
{
echo self::$class; //代表该类,调用自身类里边的静态成员
echo "jtff";
}
function Say()
{
echo self::$class; //普通方法里边可以调用静态成员
echo "hello";}
/*function __set($n,$y)
(
$this->$n = $y;
)*/
//2.继承:
//概念:如果一个类有子类,他会继承父类的一切东西,私有成员访问不到
//定义子类的时候需要加关键字:extends
//特点:单继承,一个儿子只能有一个父亲,一个类只能有一个父类
//如果父类中有构造函数,子类在实例化时要按照父类的标准来做
//子类对父类方法的重写,在子类中写一个同样的方法
//final: 用来修饰类,代表该类是一个最终类,无法被继承
/*class Test extends Info
{
public $birthday;
function Run()
{
echo "run";
}
function Say()
{
parent::Say(); //调用父类的say方法
echo "world<br>";
}
}
$t = new Test();
/*Info::$class = "0305";
$t->code = "p001";*/
/*$t->Say();
//$t->Run();
var_dump ($t);
echo Info::p;*/
//静态成员
//普通成员是属于对象的,不是属于类的,调用的时候用对象调用
//什么叫静态成员:属于类的不是属于每个对象的,
//定义静态成员由static关键字修饰
//静态方法里边无法调用普通成员,可以调用静态成员,使用关键字:self
//self代表该类,$this代表该对象
/*Info::$class = "0305"; //访问静态成员用::
echo Info::$class;
Info::Test();*/
class Ren
{
public $name;
public $sex;
function Say()
{
echo "hello";
}
function __tostring() //输出类里面的一些描述
{
return "这个类包含变量name和sex";}
function __clone() //对象克隆的时候自动执行
{
$this->name = "李四"; //$this指克隆出来的新对象
}
}
class China extends Ren
{
function Say()
{
echo "你好";
}
}
//多态
//当父类引用指向子类实例的时候,由于子类对父类函数进行了重写,导致了我们在使用该引用去调用相应方法表现的不同
//发生条件:1.必须要继承
//2.父类引用要指向子类的实例~~~~~~~~~~~~~
//2.子类必须对父类的方法进行重写
//$r = new Ren(); //代表Rene的引用
//$r1 = new China(); //代表China的引用
//函数重载
//条件:1.函数名必须相同;2.函数里面参数的个数不同,如果个数相同,类型不同也可形成重载
//__tostring()方法
//对象的克隆
$r = new Ren();
$r->name = "张三";
$r1 = clone $r; //clone克隆对象
var_dump($r1);
标签:
原文地址:http://www.cnblogs.com/1116zsc/p/5453744.html