【代码学习】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{
        protected $name;
        protected $country;

function __construct($name=‘‘,$country=‘China‘){
    $this ->name = $name;
    $this ->country = $country;
}

    //在抽象类中声明一个没有方法体的抽象方法
    abstract function say();

    //在抽象类中可以声明正常的费抽象的方法
    abstract function run(){
        echo ‘我正在走路‘;  //有方法体,输出一条语句
    }
    class student extends Person{
        function say() {
            echo ‘我是中国人‘;
        }
    function run() {
            echo ‘我正在跑步‘;
        }
    }
}
?>

注意:

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

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

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

四、抽象类的作用

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

时间: 2024-12-24 01:52:38

【代码学习】PHP面向对象之抽象类与接口的相关文章

Java基础__慕课网学习(24):深入理解抽象类与接口(转)

深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然.今天我们就一起来学习一下Java中的接口和抽象类.下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为:

JAVA学习经验--总结JAVA抽象类和接口

* --总结JAVA抽象类和接口  * 1.抽象类:  *             1>抽象类可以修饰方法,修饰类,但不能修饰属性,不能被实例化  *             2>抽象类可以被继承,只能是单继承,继承抽象类必须实现抽象方法  *             3>抽象类不能被static ,fina,private一起修饰  *             4>抽象类是有多态性的  *  * 2.接口:  *             1>接口是一种特殊的抽象类,不能被实

php面向对象之抽象类和接口理解

结合网上文档和官方文档,自我测试总结心得,实践出真知,时间匆忙,写的不详请谅解! 结合实例分析: <?php header("Content-type:text/html;charset=utf-8"); abstract class People{ protected $age=22; public $height=1.70; abstract function work(); //抽象方法没有方法体,子类必须实现. function run(){} function Peop

013_面向对象_抽象类和接口

1.抽象类(abstract) (1)特点 ①方法只有声明没有实现时,该方法就是抽象方法,抽象方法必须定义到抽象类中,该类也必须被abstract修饰 ②抽象类不可以被实例化,因为调用抽象方法没有意义. ③抽象类必须有子类覆盖所有的抽象方法,该子类才可以实例化,否则,这个子类还是抽象类 (2)常见问题 ①抽象类中有构造函数吗? 有,用来给子类对象初始化 ②抽象类可以不定义抽象方法吗? 可以.目的是不让该类创建对象,通常这个类中的方法有方法体,却没有内容 ③抽象关键字不可以和哪些关键字共存? pr

Java面向对象之抽象类,接口

抽象类: 含有抽象方法的类被声明为抽象类 抽象方法由子类去实现 含有抽象方法的类必须被声明为抽象类 抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法 抽象方法: 声明而未被实现的方法 抽象类不能被实例化 子类实现不了, 由下一级子类去实现, 当前类声明为抽象类, 继承的这个方法声明为抽象方法 抽象方法的权限修饰符必须为public abstract //人类 public class Person { private String name; //自定义属性 引用类型 宠物

黑马程序员_面向对象之抽象类与接口

抽象类(abstract)???? 当编写一个类时,时常会为该类定义一些方法,这些方法的使用用以描述该类的行为方式,那么这些方法都有具体的方法体.但是在某些情况下,某个父类只是知道子类应该包含怎样的放过,但是无法精确的知道这些子类是如何实现这些方法,例如定义一个GetTime类,该类提供了一个计算某一段程序运行时间的gettime方法,但是无法知道具体运行什么方法体,这时就需要使用抽象方法来实现了. 抽象类概念 当多个类中出现相同功能,但是功能主体不同,这时候可以进行向上抽取,只抽取功能定义,而

面向对象,抽象类。接口。类库

抽象与接口,库类的使用 抽象类:抽象类,只为继承而出现,不定义具体的内容,只规定该有哪些东西:一般抽象类中只放置抽象方法,只规定了返回类型和参数:比如: 人 - 有吃饭,睡觉方法: 男人 - 继承人抽象类,必须实现吃饭,睡觉的方法主体: 女人 - 继承人抽象类,必须吃饭,睡觉方法的主体: 抽象类中可以有普通属性,通过子类来使用: 1.关键字:abstract 2.抽象类可以包含抽象方法和普通方法3.abstract关键字可以定义方法为抽象方法,抽象方法可以没有函数体4.抽象类无法被实例化,抽象类

面向对象 多态、抽象类和接口

今天,我主要学习了多态.抽象类和接口的部分内容. 在实际的操作中,同样都是继承了同一个父类,但是父类中的方法并不适用任何一个子类,那么在这就需要子类重新编写这个方法的主体. 在重写成员方法时,需要父类同意子类可以重新编写自己的方法:virtual -  虚方法:子类只能重写父类允许重写的方法,只能重写虚方法:override - 重写覆盖虚方法. 基类与派生类是相对的,所有的类都可以当做父类,都可以有虚方法. 抽象类:abstract 抽象类就是为了被继承而出现的.普通的类中所有的方法都变成虚方

重新理解Java的抽象类和接口

对于OOP编程来说,抽象是它一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:抽象类和接口. 这两者有相似之处也有很大的不同之处. 一.抽象类 在了解抽象类之前,先了解下抽象方法.抽象方法是一种特殊的方法:只有声明,而没有具体的实现.抽象方法的声明格式为:abstract void fun(); 抽象方法必须用abstract关键字进行修饰.如果一个类含有抽象方法,则称这个类为抽象类,这个类就必须在类前用abstract进行修饰,否则在IDE中编译的时候就会提示错误.因为抽象类中含