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

时间:2023-07-05 10:13:44

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(); ?>

静态方法