码迷,mamicode.com
首页 > Web开发 > 详细

php面向对象-抽象类与接口

时间:2015-11-23 16:19:36      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

一、抽象类与接口

1、抽象类:拥有抽象方法的类就是抽象类(没有抽象成员属性)

  抽象方法:没有方法体的方法就是抽象方法

           什么是没有方法体?没有花括号

 所有抽象类和抽象方法都需要abstract关键字修饰

 一个抽象类里面可以拥有多个抽象方法,也可以拥有多个非抽象方法

 抽象方法不能被声明为私有

 继承抽象类的时候,方法也要遵守321原则

 继承抽象类的时候,方法体中的形参数量要和抽象方法保持一致

 继承抽象类的时候,抽象方法中的形参如果有默认值,则实现的方法也要有默认值,值可以不一样。

 抽象类可以拥有成员属性

例:abstract class Demo{

abstract function show($n=‘abc‘);

abstract function test();

function say(){

echo "青山不改绿水长流,你还会回来的!!";

}

}

class Son extends Demo{

function show($abc=10){}

function test(){}

}

 

$s=new Son;

$s->say();  

2、接口技术

接口 interface

所有的方法都是抽象的,这个类就是接口,接口我们不用class声明,用interface声明

接口不能拥有成员属性,但是可以拥有常量

一个接口可以被一个类实现(implements,该类必须全部实现了接口中所有的抽象方法

一个类只能继承一个父类(抽象类),但可以实现多个接口

一个类除了继承外也可以实现接口。

一个类是先继承后实现接口

接口与接口之间也可以继承

 

例:interface Demo{

 

function show();

function test();

}

 

interface Demo2 extends Demo{

function show2();

}

 

class Father {

function say(){

echo ‘说了‘;

}

function show(){

 

}

}

 

class Son extends Father implements Demo2{

function show(){

}

function test(){

 

}

function show2(){

 

}

}

$s=new Son;

$s->say();

php面向对象-抽象类与接口

标签:

原文地址:http://www.cnblogs.com/youy/p/4988621.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!