php的多态太BT了
class a
{
public function father(b $g)
{
}
}
class b
{
}
class c extends b
{
}
class d extends b
{
}
$a=new a();
$c=new d();
$a->father($c);
凡可以用父类的都用子类来代替
php本身就不检测类型,本身就是多态的。但5.3以后引入对象类型的检测,这其实是限制了php的灵活性,达到多态.
其实就只抽象声明父类,具体的工作由子类来完成,这样不同的子类对象完成不同的功能
静态方法,静态属性和普通方法存在于类中.普通属性存在与具体的某个对象中.静态和类在内存中只有一个.
综上所述
静态方法中不能有$this
对象可以访问静态方法,类也可以访问静态方法.
简单的单例模式
class her{
static $ins=null;
private function __construct(){}
static public function getins(){
if( ! (self::$ins instanceof self)){
self::$ins= new self();
}
return self::$ins;
}
}
单例模式 其实就是静止多个new操作,并且利用静态,实现内存中只有一个对象.
在php中除了属性,其他都可以用final
final 可以继承,不能重写