php面向对象编程--抽象类

来源:互联网 发布:网络信息推广的文字 编辑:程序博客网 时间:2024/05/18 11:50
抽象类

1、在实际开发中,我们可能有这样一种类,是其它类的父类,但是它本身并不需要实例化,主要用途是用于让子类来继承,这样可以达到代码复用. 同时利于项目设计者,设计类.

代码实例:

<?php //在实现方法覆盖的时候,访问修饰符可以不一样//但是必须满足: 子类的访问范围>=父类的访问范围abstract class Animal{    public $name;    protected $age;    //这个方法没有方法体,这个方法主要是为了让子类去实现.    //注意也不能有大括号    abstract public function cry();}class Cat extends Animal{    public  function cry(){        echo "猫猫叫唤..<br>";    }}//创建一个子类实例$cat1=new Cat();$cat1->cry();?>

 使用抽象类的注意事项:

1.基本用法:
      abstract class 类名{
            //方法
            //属性
     }
2.如果一个类使用abstract 来修饰,则该类就是抽象类, 如果一个方法被abstract修饰,则该方法就是抽象方法【抽象方法不能有方法体,连那个大括号也不能有.】
3.抽象类可以没有抽象方法.同时还可以有实现了的方法.

<?phpabstract class Animal1{    public $name="abc";    protected $age;    //这个方法没有方法体,这个方法主要是为了让子类去实现.    abstract public function cry();             public function getName(){        return $this->name;    }}class Cat1 extends Animal1{    public  function cry(){        echo "猫猫叫唤..<br>";    }}//创建一个子类实例$cat2=new Cat1();$cat2->cry();echo $cat2->getName(); echo "<br>"; ?>


如果一个类中,只要有抽象方法,则该类必须声明为abstract

<span style="font-size:18px;"><?php // abstract class A{              //               abstract function test();//        }//        echo "ok";//5.如果A类继承了一个抽象类 B,则要求A类实现从B类继承的所有抽象方法,除非A类也声明为抽象类。//案例://这是一个抽象类        abstract class A{                            abstract function test();              //abstract function test1();       }       //B类要么自己抽象,或者实现从A类继承的抽象方法.       class B extends A{                    function test(){                     echo "我实现A:test()";              }       }       echo "hello!    ";       $a1=new B;       $a1->test();       ?></span>


0 0
原创粉丝点击