您的位置:首页 > 其它

抽象方法和抽象类

2014-09-20 11:32 141 查看
<?php

/*
*   1.什么是抽象方法
*	定义:一个方法如果没有方法体(一个方法不使用“{}”,直接使用分号结束的方法,才是没有方法体的方法),则这个方法就是抽象方法;
*      一、声明一个方法,不适用{},而直接分号结束;
*      二、如果是抽象方法,必须使用 abstract(抽象关键字来修饰)
*      三、不是抽象类,不可以使用抽象方法
*
*   2.什么是抽象类
*	一、 如果一个类中有一个方法是抽象方法,则这个类就是抽象类
*	二、如果声明一个抽象类,这个类必须使用abstract来修饰
*
*   注意:
*   		1.只要使用abstract修饰的类,就是抽象类;
*   		2.抽象类是一种特殊的类,特殊在哪里(在抽象类中有可以有抽象方法)
*   		3.除了抽象类中可以有抽象方法以外,和正常的类完全一样;
*
*   注意2:
*   		1.抽象类不能实例化对象(不能创建出对象)
*		2.如果看见抽象类,就必须写这个类的子类,将抽象类中的抽象方法覆盖(加上方法体)
*		3. 子类必须全部实现(覆盖重写)抽象方法,这个子类才能创建对象,如果只部分实现,那么还有抽象方法, 则类也就必须是抽象类
*
*
*
*   抽象方法的作用:
*   		抽象方法的作用是就是规定了,子类必须有这个方法的实现,功能交给子类
*   		值写出结构,而没有实现,实现交给子类(按自己的功能)去实现
*
*   抽象类的作用:
*   		就是要求子类的结果,所以抽象类就是一个规范,
*
*/

abstract class Person{ // 抽象类

public $name;
public $age;

abstract function eat();
abstract function say(); // 抽象方法

function run(){

}

function sleep(){

}

//$p = new Person; //抽象类不能实例化,不能创建出对象

class StudentCn extends Peeson{
function say(){ //将父类中的say抽象方法覆盖
echo "我是中国人,我说中文<br>";
}

function eat(){ // 将父类中的eat抽象方法覆盖
echo "我是中国人,我用筷子吃饭";
}
}

class StudentEn extends Peeson{
function say(){ //将父类中的say抽象方法覆盖
echo "我是外国人,我说英语<br>";
}
function eat(){ // 将父类中的eat抽象方法覆盖
echo "我是外国人,我用刀叉吃饭";
}
}

$s1 = new StudentCn();
$s1 => say();
$s1 => eat();

$s2 = new StudentEn();
$s2 => say();
$s2 => eat();
};

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