美文网首页
PHP中抽象类和接口类看法

PHP中抽象类和接口类看法

作者: LeeBoot | 来源:发表于2017-06-08 17:02 被阅读0次
先说自己的看法
  • 几点
    • 含有抽象方法的类一定是抽象类
    • 抽象类不一定含有抽象方法
    • 抽象类中可以有普通的方法
    • 抽象类不能直接实例化,必须由一个子类继承它。并把所有父类中的抽象方法都实现(重写),新的实现方法的参数的个数应该和抽象方法的参数个数一样,重新生成对应的类型提示。
abstract class person{
        //定义抽象方法:修饰词:abstract 方法是没有方法体的
        public abstract function say($name);
        public abstract function run();
        public function eat(){
            echo 'eat...';
        }
    }
    
    class student extends person{
        public function say($name){
            echo "{$name}say...";
        }
        public function run(){
            echo 'run...';
        }
    }
    
    $student = new student ();
    $student -> say('lisi');
    echo "<hr />";
    $student -> eat();
  • 几点
    • 接口 声明关键字 interface
    • 接口中可以声明常量也可以声明抽象方法
    • 接口中的方法都是抽象方法不需要使用abstract修饰
    • 接口不能实例化,需要用一个类去实现它(implements)
    • 一个类可以实现多个接口(解决了php单继承的问题)
interface person{
        const Name='lwb';
        
        public function run();
        public function say();
    }
    interface learn{
        public function study();
    }
    
    class student implements person,learn{
        public function run(){
            echo 'run...';
        }
        public function say(){
            echo 'say...';
        }
        public function study(){
            echo 'study...';
        }
    }
    
    $student = new student();
    $student -> run();
    echo "<hr />";
    echo $student::Name."<hr />";
    $student -> say()
    echo "<hr />";
    $student -> study();
下面是面试题中网络答案所见
  • 接口用于规范,抽象类用于共性。
    • 接口中只能声明方法,属性,事件,索引器。而抽象类中可以有方法的实现,也可以定义非静态的类变量。
    • 抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。
    • 抽象类可以提供某些方法的部分实现,接口不可以.
    • 抽象类的实例是它的子类给出的。接口的实例是实现接口的类给出的。
    • 再抽象类中加入一个方法,那么它的子类就同时有了这个方法。而在接口中加入新的方法,那么实现它的类就要重新编写(这就是为什么说接口是一个类的规范了)。
    • 接口成员被定义为公共的,但抽象类的成员也可以是私有的、受保护的、内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或派生类中访问)。
    • 此外接口不能包含字段、构造函数、析构函数、静态成员或常量

相关文章

  • PHP中抽象类和接口类看法

    先说自己的看法 几点含有抽象方法的类一定是抽象类抽象类不一定含有抽象方法抽象类中可以有普通的方法抽象类不能直接实例...

  • php之接口、抽象类

    php之接口、抽象类 首先,看看什么是抽象类和接口 抽象类: 定义为抽象的类不能被实例化.任何一个类,如果它里面至...

  • PHP中抽象类和接口

    抽象类: 1.抽象类用 [abstract] 关键字声明为抽象类2.抽象类不能被直接实例化3.如果子类需要实例化,...

  • java的final关键字

    ——修饰类、接口和抽象类 final可以修饰方法,属性,类!但是不能修饰接口,抽象类;因为 接口和抽象类本身就是...

  • Java基础-抽象类和接口

    抽象类和接口也是 Java 面试中常考的,下面就来总结一下抽象类和接口的相关知识。 抽象类是类,Java 中类是单...

  • 接口测试哪几个点是需要特别关注的?

    接口和抽象类的区别: 1、都不能被实例化。 2、接口的实现类和抽象类的子类只有全部实现了接口或者抽象类中的方法后才...

  • 新手做接口测试哪几个点是需要特别关注的?

    接口和抽象类的区别:1、都不能被实例化。 2、接口的实现类和抽象类的子类只有全部实现了接口或者抽象类中的方法后才可...

  • 新手做接口测试哪几个点是需要特别关注的?

    接口和抽象类的区别:1、都不能被实例化。 2、接口的实现类和抽象类的子类只有全部实现了接口或者抽象类中的方法后才可...

  • 5.5-全栈Java笔记:接口的定义和使用

    接口interface 接口的作用 为什么需要接口?接口和抽象类的区别? 接口就是比“抽象类”还“抽象”的“抽象类...

  • 抽象类和接口区别

    一.抽象类和接口区别: 抽象类由abstract关键字来修饰,接口由interface关键字来修饰。 抽象类中除了...

网友评论

      本文标题:PHP中抽象类和接口类看法

      本文链接:https://www.haomeiwen.com/subject/asqiattx.html