属性:
类中定义的变量
方法:
类中的function
在面向过程的程序设计中function叫做函数,在面向对象中function则被称之为方法。
&this
表示类使用本身的属性或者方法,出现$this表示类自己
父类的属性,在子类中可用$this访问
访问控制:
- public在类本身、子类、其他类中都可以访问
- protect在类本身、子类中可以访问
- private只能在类本身使用
static静态成员:
调用 类名::方法名
内部调用静态方法和属性时,使用self或static代替$this self::$speed;//访问自身的静态成员
parent::$speed;//访问父类的静态成员
注意:访问静态属性时,需要加上$
构造函数__construct()
创建对象时使用,初始化对象
调用父类的构造函数:parent::__construct()
析构函数__destruct()
某个对象的所有引用被删除,或者对象被显式的销毁时执行
重写overwrite:
在子类中编写和父类方法名完全一致的方法
final:
添加final关键字能够让这个方法不能在子类中重写
class之前添加final关键字,此类不被继承
方法定义前添加final关键字,方法不被重写(修改)
用parent关键字可以访问父类中被子类重写的方法
接口
interface用于定义接口。
- interface ICanEat{}接口里面的方法只定义,不需要有方法的实现。具体的实现必须在实现类中定义。
- implements用于表示类实现某个接口。class Human implements ICanEat{}
- 实现了某个接口之后,必须提供接口中定义的方法的具体实现。
- 给出一个接口,自己定义类来实现接口,且类中的方法自己定义来实现
- 不能实例化接口
- 接口不能创建对象
- 可用instanceof来判断某个对象是否实现了某个接口
- 可以用extends让接口继承接口。当类实现子接口时,夫接口定义的方法也需要在这个类里面具体实现。
类的方法必须有实现,接口的方法必须为空。
多态
相同的一行代码,对于传入不同的接口的实现的对象的时候,表现是不同的,这即是多态。
抽象类
abstract
<?php
abstract class ICanEat{
abstract public function eat($food);
public function breath(){
echo "Breath use the air. \n";
}
}
?>
abstract在抽象方法前面添加abstract关键名字可以标明这个方法是抽象方法不需要具体的实现
抽象类中可以包含普通的方法
继承抽象类的子类需要实现抽象类中定义的抽象方法