zoukankan      html  css  js  c++  java
  • 【代码总结】PHP面向对象之抽象类

    一、什么是抽象方法?

      一个方法如果没有方法体(不使用"{}",直接使用分号结束的方法,才是没有方法体的方法),则这个方法就是抽象方法

    1、声明一个方法,不使用{},而直接分号结束

    2、如果是抽象方法,必须使用abstract(抽象关键字来修饰)

    二、什么是抽象类

    1、如果一个类中有一个方法是抽象的方法,则这个类就是抽象类

    2、如果声明一个抽象类,则这个类必须使用abstract关键字修饰

    <?php 
        //声明一个抽象类,要使用abstract关键字识别
    abstract class Person{
            protected $name;
            protected $country;
            
        //在抽象类中声明一个没有方法体的抽象方法
        abstract function say();
        
        //在抽象类中可以声明正常的费抽象的方法
        function run(){
            echo '我正在走路';  //有方法体,输出一条语句
        }
    }
    ?>

    注意:

      1、只要使用abstract修饰的类,就是抽象类

      2、抽象类是一种特殊的类,在抽象类中可以有抽象方法

      3、除了抽象类可以有抽象方法,意外,和正常的类完全一样

      4、抽象类不能实例化对象

    三、抽象方法的作用

      1、抽象方法的作用就是规定了,子类必须有这个方法的实现,功能交给二子类

      2、只写出来结构而没有实现,实现交给具体的子类去实现

    <?php 
        //声明一个抽象类,要使用abstract关键字识别
    abstract class Person{
            public $name;
            public $country;
             
    function __construct($name='',$country='China'){
        $this ->name = $name;
        $this ->country = $country;
    }
             
        //在抽象类中声明一个没有方法体的抽象方法
        abstract function say();
         
        //在抽象类中可以声明正常的费抽象的方法
        abstract function run();
    }
        class student extends Person{
            function say() {
                echo '我是中国人';
            }
        function run() {
                echo '我正在跑步';
            }    
        }
    ?>

    注意:

    1、抽象类不能实例化对象(不能创建对象)

    2、如果块钱按键抽象类,就必须写这个类的子类,将抽象类中的抽象方法覆盖(加上方法体)

    3、子类不许全部实现(覆盖重写)抽象方法,这个子类才能创建对象,如果只实现部分,那么还有抽象方法,则类必须是抽象类

    四、抽象类的作用

    就是要求子类的结构,所以抽象类就是一个规范

  • 相关阅读:
    新一篇: 正则表达式使用详解
    C#預處理指令
    [转]SQL Server 2005 Beta 2 TransactSQL 增强功能
    SQL Server 2005之PIVOT/UNPIVOT行列转换
    爬虫入门到放弃系列01:什么是爬虫
    我的程序员之路01:自学Java篇
    Java入门者:如何写出美观的Java代码?
    JedisCluster使用pipeline操作Redis Cluster最详细从0到1实现过程
    IDEA超神之路:安装、运行HelloWorld以及激活到2099年的第一场雪
    软考系统架构师、信息系统项目管理师、系统分析师、系统规划与管理师和网络规划师资料大汇总
  • 原文地址:https://www.cnblogs.com/sqyysec/p/6837287.html
Copyright © 2011-2022 走看看