您的位置:首页 > 编程语言 > PHP开发

PHP类的继承和接口

2015-06-04 19:19 543 查看

PHP类的继承的一些语法

-PHP的类只支持单继承,就是每个类最多只能有一个父类或者没有父类。

-子类不能继承父类使用private修饰的成员。

修饰符可访问范围
public当前类、子类和类外
protected当前类和子类
private当前类
类的类型含义
被final修饰的类只能实例化不能被继承
被abstract修饰的类只能被继承不能被实例化
注意:

被final修饰的方法不能被子类重写。

-通常要被子类继承的成员都使用protected,其余的尽量使用private,把类的内部实现隐藏起来。

-子类可以重写父类的成员,但不可以重写父类private修饰的成员。

-可以使用parent访问父类的成员。

修饰符含义
self当前类本身
parent当前类父类
$this当前对象

-构造函数和析构函数的执行顺序

- 一个没有父类的类先执行构造函数再执行析构函数

- 一个有父类的类先执行子类的构造函数再执行父类的构造函数,析构函数的执行顺序跟构造函数的执行顺序相反。

<?php
// 定义一个Person类
class Person {
// 构造函数
public function __construct() {
echo "Person's __construct.",'<br />';
}
// 析构函数
public function __destruct() {
echo "Person's __destruct.",'<br />';
}
}
// 定义一个PersonMale类继承Person类
class PersonMale extends Person {
// 构造函数
public function __construct() {
echo "PersonMale's __construct.",'<br />';
// 调用父类的构造函数
parent::__construct();
}
// 析构函数
public function __destruct() {
parent::__destruct();
echo "PersonMale's __destruct.",'<br />';
}
}
// 定义一个PersonFemale类继承Person类
class PersonFemale extends Person{
// 构造函数
public function __construct() {
echo "PersonFemale's __construct.",'<br />';
parent::__construct();
}
// 析构函数
public function __destruct() {
parent::__destruct();
echo "PersonFemale's __destruct.",'<br />';
}
}

$personObject = new Person();
$personMaleObject = new PersonMale();
$PersonFemaleObject = new PersonFemale();

运行结果:
Person's __construct.
PersonMale's __construct.
Person's __construct.
PersonFemale's __construct.
Person's __construct.
Person's __destruct.
PersonFemale's __destruct.
Person's __destruct.
PersonMale's __destruct.
Person's __destruct.


PHP的接口

-一个类可以实现多个接口

-接口里的方法都是不完整的方法(没有函数体的)

-接口的使用

<?php
/**
*   接口MyInterFaceA
*/
interface MyInterFaceA {
public function functionA();
public function functionB();
}
/**
*   接口MyInterFaceB
*/
interface MyInterFaceB {
public function functionC();
public function functionD();
}
/**
*   类实现接口MyInterFaceA和MyInterFaceB
*   并且重写接口里所有的公共的抽象方法
*/
class MyClass implements MyInterFaceA,MyInterFaceB{
public function functionA() {

}
public function functionB() {

}
public function functionC() {

}
public function functionD() {

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  接口 语法 php