抽象類和接口

一、抽象類

  1、只要包含抽象方法的類就是抽象類

  2、抽象類必須加abstract 修飾

  3、抽象類不能直接實例化

  4、抽象類必須被繼承才能使用,而且還要完成裏面的所有抽象方法

  5、如果有任何一個抽象方法沒有被實現  那麼這個類也必須是抽象類

      

    abstract class A{

    abstract public function say();

}

abstract class B extends A{

public function say(){

}

}

class C extends B{

public function say(){}

}


二、抽象方法

  1、沒有方法體的方法

  2、必須使用abstract來修飾

    abstract class Animal{

abstract public function show();

}

  3、抽象方法需要被重寫

  4、重寫了所有抽象方法的類纔算是一個完整的類,可以被實例化

三、抽象類和抽象方法的作用

 就是在企業中制定規範的作用

四、接口  作用:指定規範

  1、定義格式

  interface 接口名{

     [常量]

     [抽象方法]

    }

  

  2、特性:

    在接口裏面所有方法都是抽象方法  不需要特殊修飾

    接口與接口之間 是繼承關係

    類與接口之間是實現關係

    實現接口可以多實現 中間用逗號隔開

    類在繼承其他類的時候 可以實現接口(多實現)繼承一定要寫在實現的前面

    

            //定義一個USB接口

interface USB{

//在接口裏 所有的方法都是抽象方法 不需要額外修飾 不能使用普通方法

public function run();

}

//接口與接口之間是繼承關係

interface ps2 extends USB{

public function move();

}

interface typeC{

public function xxx();

}

class A{}

//類與接口之間是實現關係

//實現接口可以多實現 中間用逗號隔開

//類在繼承其他類的同時可以實現接口(多實現)繼承一定要在實現的前面

class Mouse extends A implements ps2,typeC{

public function run(){}

public function move(){}

public function xxx(){}

}

  3、作用:制定規範使用

  4、與抽象類的差異

    單純的用於制定規範 接口兩種都可以

    在制定規範的時候要共享一些方法 只能使用抽象類

五、多態

    多態:不同的對象做相同的事情得到不同的結果

    

        class MeiZi{

           public function meet($obj){

      $obj->ber();

}

}

//制定規範

abstract class Hanzi{

abstract public function ber();

}

class DDS extends Hanzi{

public function ber(){

echo'滾';

}

}

class GFS extends Hanzi{

public function ber(){

echo'不滾';

}

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章