封装抽象接口

什么是封装?

和”public”类似的访问修饰符分别有什么作用?

PHP中有三种访问修饰符,分别是: 
public(公共的、默认) 
protected(受保护的) 
private(私有的) 

它们可以分别用在类的属性和方法上(类的属性和方法统称为类的成员),用来修饰类成员的访问权限。 
public(公共的、默认) 
PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限。 

/* 
以下两个方法声明访问权限效果相同 
*/ 
function say(){}; 
publilc function say(){}; 

当类的成员被声明为public的访问修饰符时,该成员能被外部代码访问和操作。 
private(私有的) 
被定义为private的成员,对于类内部所有成员都可见,没有访问限制。对类外部不允许访问。 
protected(受保护的) 
protected稍微有点复杂,被声明为protected的成员,只允许该类的子类进行访问。 

 

什么是抽象?抽象的关键字以及用法

1、抽象关键字 :abstract

抽象就是无法确切的说明,但又有一定的概念或者名称,在PHP中声明一个抽象类或者方法我们需要使用adstract关键字。

2、抽象方法和抽象类的定义

一个类中至少有一个方法是抽象的,我们称之为抽象类。所以如果定义抽象类首先定义抽象方法。

abstract class class1{                                              

   abstract function fun1();

……
}

1、类中至少有一个抽象方法
2、抽象方法不允许有{ }
3、抽象方法前面必须要加abstract


3、抽象类和方法使用规则

抽象类的几个特点:
     1、不能被实例化,只能被继承
     2、继承的派生类当中要把所有抽象方法重载才能实例化

 

 

实例:

<?phpabstract  class cl1{

    abstract  function fun1();

    abstract  function fun2();

}class cl2 extends  cl1{

    function fun1(){

        echo "第一个";

    }

    function  fun2(){

        echo "第二个";

    }

    

}

$c=new cl2();

echo $c->fun2();?>

 

什么是接口?接口的关键字以及用法

接口interface 是一个规定,给人继承用的东西,有点像抽象类
在里面定义的方法,却不去实例化,而需要别的类去implements 它,而且必须一一实现接口定义的所有方法,

举个例子
interface Shop  
{  
public function buy($gid);  
public function sell($gid);  
public function view($gid);  
}    
我声明一个shop接口类,定义了三个方法:买(buy),卖(sell),看(view),那么继承此类的所有子类都必须实现这3个方法少一个都 不行,如果子类没有实现这些话,就无法运行。实际上接口类说白了,就是一个类的模板,一个类的规定,如果你属于这类,你就必须遵循我的规定,少一个都不 行,但是具体你怎么去做,我不管,那是你的事,如:
 
class BaseShop implements Shop  
{  
public function buy($gid)  
{  
echo('你购买了ID为 :'.$gid.'的商品');  
}  
public function sell($gid)  
{  
echo('你卖了ID为 :'.$gid.'的商品');  
}  
public function view($gid)  
{  
echo('你查看了ID为 :'.$gid.'的商品');  
}  
}

posted on 2017-07-16 23:25  姨妈尽是血  阅读(91)  评论(0编辑  收藏  举报