class Test {
public $attr; // 可以被外部访问,可以被继承;
protected $attr; // 不可以被外部访问,可以被继承;
private $attr; // 不可以被外部访问,不可以被继承;
public function __construct($params){
// 创建一个对象时,会自动调用构造函数,完成一些初始化工作
$this->$attr = $params;
}
public fucntion foo1() {
echo 'I'm function foo1 in classTest';
}
protected fucntion foo2() {
echo 'I'm function foo2 in classTest';
}
private fucntion foo3() {
echo 'I'm function foo3 in classTest';
}
// 最终类:禁止被继承,只能被实例化;
final fucntion foo4() {
echo 'I'm function foo4 in classTest';
}
}
// 类的实例化:
$obj = new Test('tt'); // new 一个对象
echo $obj->$attr; // 调用类的属性
$obj->foo1(); // 调用类的方法
---------------------------------------------------------------
刚提到最终方法,还有最终类;其实还有抽象方法和抽象类;
抽象类:有抽象方法的类就是抽象类,抽象方法没有方法体,需要被重写;所以抽象类必须被继承;抽象类中还可以有一般方法;
拥有的成员属性全部为抽象或常量的、有且只有抽象方法的类叫做“接口”,使用关键词interface来定义接口;使用关键词implements来实现,并且必须全部方法都实现。
抽象类只能单继承,当一个子类需要实现的功能需要继承自多个父类时,就必须使用接口。
PHP的类有三大特性:封装、继承、多态;
封装性:让类更安全,体现在访问控制符的使用;
继承性:子类继承父类的一切(属性、方法),在子类中对父类的方法进行重写;
override——方法重写; overload——重载,编辑多态
多态性:由于子类里面对父类的方法进行了重写,父类引用在调用方法的时候表现出的不同状态。
-----------------------------------------
static:静态的;带有static的属性是属于类自己独有的属性,其他的是对象可以有的属性。