继承:
从一个现有的类A中,获取其中的特征信息,以构建另一个类B,这种现象就是继承。
class A{}
class B extends A { } //单继承;
如果是多继承,代码类似这样(其实php是不支持的):
class s B extends A1, A2, A3,..... {}
继承:B继承了A;
派生:A派生出B;
父类:基类,上级类,
子类:派生类,下级类,
单继承:就是一个类只能从另一个类继承特性的现象;
多继承:就是一个类能够从多个类继承特性的现象;
扩展:子类在继承父类的特征信息的基础上,再定义一些自己的特征信息。
有3个访问控制修饰符,用于修饰属性或方法:public, protected, private
有3个访问位置:类内部,继承关系类的内部;类外部;
总结:
代表父类。
常常在构造方法中使用,以代表父类来执行父类的方法(此时可能执行的是父类的静态方法或实例方法)
1:他们都有这个特性:子类没有,则自动会调用父类,子类有,则不会自动调用父类;
2:子类中,可以人为调用父类的同类方法;
基本概念:
子类定义跟父类的同名属性或方法;
1,子类中重写的属性或方法,其访问修饰符范围不能更小(狭窄);
2,子类中重写的方法,形参必须跟父类保持一致;
说明:
1,构造方法中的形参不受限制;
2,父类的私有成员其实是不能重写;
最终类:
就是一个不允许进行派生的类——即别的类不能以它作为父类;
final class 类名{。。。}
最终方法:
就是一个定义好了之后不允许后代类去覆盖的方法;
其实就是针对某种问题所提出的(人们积累的)相应的解决方法的一般性经验总结。
工厂模式:
就是定义的一个类,它能够根据传递过来的类的名称,而“生产”这种类的对象。
class Factory{
Static function GetObject( $类名 ){
return new $类名()
}
}
就是定义这样一个类:它只能实例化自己的一个对象。
实现单例需要如下几步:
class Single{
//第1步:私有化构造方法:
private function __construct(){} //保证外界不可以使用new来创建对象了
//第2步:定义一个私有的静态属性,目标是为了存储该唯一对象,但其初始值为null
private static $instance = null;
//第3步:定义一个静态方法,从中判断是否生成该唯一对象,并返回该唯一对象;
static function GetInstance(){
if( !isset( self::$instance ) ){
self:: $instance = new self();
}
return self::$instance;
}
}
封装性:
就是将一个类中的成员,设计为“尽量少地”对外开放其访问权限的一种指导原则;