本节内容:
php抽象类与接口
什么是抽象类?
1. 如果一个类中,有一个方法是抽象的则这个类就是抽象类
2. 如果一个类是抽象类,则这个类必须要使用abstract修饰
3. 抽象类是一种特殊的类,就是因为一个类中有抽象方法,其他不变。也可以在抽象类中声明成员属性,常量,非抽象的方法。
4. 抽象类不能实例化对象(不能通过抽象类去创建一个抽象类的对象)
一、抽象方法没有方法体,不知道做什么的(没写功能)
二、对象中的方法和属性都要通过对象来访问,除常量和静态的变量和方法, 而抽象类又不能创建对象,抽象类中的成员都不能直接访问
例子:
复制代码 代码示例:
<?php
/**
* php抽象类示例
* by www.jb200.com
*/
abstract class Demo {
var $name;
var $age;
abstract function test();
abstract function fun();
function say(){
echo "gogogooggogo";
}
function run(){
}
}
class Hello extends Demo {
function test() {
echo "子类要完成的任务1";
}
function fun(){
echo "了类中另一个实现";
}
}
$h=new Hello;
$h->test();
2,接口
接口和抽象类是一样的作用
因为在PHP是单继承的, 如果使用抽象类,子类实现完抽象类就不能再去继承其它的类了。
如果即想实现一些规范, 又想继承一个其他类。就要使用接口
接口和抽象类的对比
1. 作用相同,都不能创建对象, 都需要子类去实现
2. 接口的声明和抽象类不一样
3. 接口被实现的方式不一样
4. 接口中的所有方法必须是抽象方法,只能声明抽象方法(不用使用abstract修饰)
5. 接口中的成员属性,只能声明常量,不能声明变量
6. 接口中的成员访问权限 都必须是public, 抽象类中最低的权限protected
例子:
复制代码 代码示例:
<?php
/**
* php接口的例子
* by www.jb200.com
*/
interface dome {
function test1();
function test2();
}
class One implements dome{
function test1(){
echo "wwwwwwwwwwwwwwww<br>";
}
function test2(){
echo "eeeeeeeeeeeeeeeee<br>";
}
}
class Two implements dome {
function test1(){
echo "66666666666666666<br>";
}
function test2(){
echo "88888888888888888<br>";
}
}
$a=new Two;
$a->test1();
$a->test2();
>>> 查看更多 php入门教程 <<<