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

php面向对象知识

2017-10-23 10:30 302 查看
介绍面向对象基本知识

<?php
header("Content-type:text/html;charset=utf-8");//设置字符集

// extends关键字用于说明该类继承自某个父类
// class NbaPlayer extends Human//类继承类
// $jordan = new NbaPlayer();
// $jordan->eat("apple"); // 只要是Human类的子类的对象,就可以调用eat方法
// extends关键字用于说明该类继承自某个父类
class Perfect extends Human{
public $name="名字";// 定义属性
public $height="高度";// 定义属性
protected $weight; // 只有自身和子类可以访问到
private $age="40"; // private 类型的属性不能被对象外部访问,但是可以在对象内部使用

public static $president="David Stern";
// 默认的构造函数,在对象被实例化的时候自动调用
// 构造函数通常用于初始化对象的属性值
function __construct($name,$height) {
print "析构函数执行". $name ."\n";
}

// 析构函数在该对象不会再被使用的情况下自动调用
// 析构函数,用于清理程序中使用的系统资源,比如释放打开的文件等等
function __destruct() {
print "构造函数执行" . $this->height . "\n";

}

public function run() {
echo "内部函数\n";
}
public static function changePresident($newPrsdt){
static::$president = $newPrsdt; // self用于表示当前类,"::"操作符用于访问类的静态成员
// static关键字也可以用于访问当前类的静态成员
// echo $this->age . "\n"; // 不能在静态方法中使用this伪变量,也不能用对象的->方式调用静态成员
echo parent::$sValue . "\n"; // parent用于表示父类,可以用于访问父类的静态成员
}

}
/**
* 接口
* 1. 接口的基本概念和基本使用方法
* 2. 接口里面的方法没有具体的实现
* 3. 实现了某个接口的类必须提供接口中定义的方法
* 4. 不能用接口创建对象,但是能够判断某个对象是否实现了某个接口
* 5. 接口可以继承接口(interface extends interface)
* 6. 接口中定义的所有方法都必须是公有,这是接口的特性。
*/
interface ICanEat {
public function eat($food);
}

/**
* 抽象类
* 1. 抽象类允许类里面的部分方法暂时没有具体实现,这些方法我们成为抽象方法
* 2. 一旦类里面有抽象方法,这个类就必须是抽象类
* 3. 抽象类跟接口一样,不能直接实例化为对象
*/

// 抽象类前面以abstract关键字开始
abstract class ACanEat {
// 没有实现的方法需要设定为抽象方法
// 抽象方法需要在子类中实现
abstract public function eat($food);

public function breath(){
echo "Breath use the air.\n";
}
}
// Human类实现了ICanEat接口
class Human extends ACanEat {
// 跟Animal类的实现是不同的
public function eat($food){
echo "Human eating " . $food . "\n";
}
}
$a = new Perfect("参数1","参数2");
echo "</br>";
// 调用对象的某个方法使用的语法是->符号,后面跟着方法的名称和一对括号
$
4000
a->run();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: