面向对象(二)
在本章中 介绍 面向对象的 继承, 访问控制, 重写, 重载 以及 this 和 parent 两个关键字:
继承
实现对类的复用, 通过继承现有的类, 实现使用已经定义类中的方法和属性;
继承而来 产生的类称之为子类; 被继承而来的类称之为父类或是超类;父类中方法, 属性 或是构造函数都可以被继承(除私有方法和属性之外)...
php是单继承,一个类只能继承一个父类, 但是一个父类可以被多哥子类所继承;
访问控制:
在类的属性或是方法中加上修饰符, 可是实现对类访问上的控制;
private:不能对直接被外部所调用,只能又当前对象调用;
比如:你有私房钱,但是你不想别人知道你到底有多少钱,我们可以把他隐藏起来;
View Code
1 calss Money
2 {
3 private $money = 1000;
4
5 public function loan($number){
6 if($this->money >= $number){
7 $this->money = $this->money - $number;
8 echo '我有这么多钱, 我借给你';
9 }else
10 {
11 echo '我没有这么多钱, 我借给你';
12 }
13 }
14 }
protected:方法和属性只能被子类调用;外部无法调用;
而public所修饰的方法或是属性则可以无限制的被调用;
重写(override):
在当父类中继承过来的子类 不能满足需求的时候, 可以对其进行改写。这个过程称方法的重写 或是覆盖;
当对父类的方法进行重写时,子类中的方法必须和父类中对应的方法具有相同的方法名称,在 PHP5 中不限制输入参数类型、参数数量 和返回值类型。
子类中的覆盖方法不能使用比父类中被覆盖方法更严格的访问权限。
声明方法时,如果不定义访问权限。默认权限为public。特别注意的是子类可以拥有跟父类不同数量的参数数量。
$this:
“$this”代表其所在当前对象。 $this 在构造函数中指该构造函数所创建的新对象在类中使用当前对象的属性和方法,必须使用$this->取值。 方法内的局部变量,不属于对象,不使用$this 关键字取值。
使用当前对象的属性必须使用$this 关键字。 局部变量的只在当前对象的方法内有效,所以直接使用。 注意:局部变量和属性可以同名,但用法不一样。在使用中,要尽量避免这样使用,以免混淆。
parent::关键字
PHP5 中使用parent::来引用父类的方法。 parent:: 可用于调用父类中定义的成员方法。 parent::的追溯不仅于直接父类。

浙公网安备 33010602011771号