PHP中接口与抽象类的异同点有哪些

接口与抽象类的相同点:

1、抽象类和接口都有抽象方法

2、抽象类和接口不能创建实例对象

3、抽象类和接口使用意义相同(定义一种规范)

接口与抽象类的不同点:

1、接口中的方法必须全要是抽象方法(不能用不抽象的方法),所以在接口的所有方法中不使用abstract,直接使用分号结束

2、接口中的成员属性,必须是常量(不能有变量)

3、接口所有权限必须是公有的(public

4、声明接口不使用class,使用interface


1

2

3

4

5

6

7

8

9

interface Person{

 public $name; //不能声明变量 报错

  const NAME=‘tom‘// 可以声明常量

 function test();  //因为接口中全部是抽象方法 所以 省去 abstract 。

 function test1();

Protect function test3() 报错 只可以是 public

}

$re=new Person; //报错 不可以 创建实例化 对象 。

echo Person:: NAME; 输出常量。

原文地址:https://www.cnblogs.com/heyue0117/p/11827698.html

时间: 2025-01-22 19:37:53

PHP中接口与抽象类的异同点有哪些的相关文章

java中接口和抽象类的异同点

抽象类和接口的区别:A:成员区别 抽象类: 成员变量:可以变量,也可以常量 构造方法:有 成员方法:可以抽象,也可以非抽象 接口: 成员变量:只可以常量,默认修饰符:public static final 成员方法:只可以抽象,默认修饰符:public abstract 建议:自己手动给出. 所以可以说接口是一种特殊的抽象类 B:关系区别 类与类 继承,单继承 类与接口 实现,单实现,多实现 接口与接口 继承,单继承,多继承 C:设计理念区别 抽象类 被继承体现的是:"is a"的关系

Java中接口和抽象类的比较

Java中接口和抽象类的比较-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计使用多态性的基础[[1]].(在面向对象语言中,接口的多种不同的实现方式即为多态.多态性是允许你将父对象设置成为和一个或更多的他的子对象的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自"Delphi4编程技术内幕").简单的说,就是一句话:允许将子类类型的

Java中接口和抽象类的比較

Java中接口和抽象类的比較-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计使用多态性的基础[[1]]. (在面向对象语言中,接口的多种不同的实现方式即为多态. 多态性是同意你将父对象设置成为和一个或很多其它的他的子对象的技术.赋值之后.父对象就能够依据当前赋值给它的子对象的特性以不同的方式运作(摘自"Delphi4编程技术内幕"). 简单的说.就是一句话:同意将

Java中接口和抽象类的区别与联系

Java中接口和抽象类的区别与联系 1. 抽象类: (1).概念:抽象类是对一种事物的抽象,即对类抽..抽象类是对整个类整体进行抽象,包括属性.行为.Java抽象类和Java接口一样,都用来声明一个新的类型.并且作为一个类型的等级结构的起点. (2).格式: public abstract class abstractDemo{ /**属性*/ private String name; /**方法*/ public abstract void fun(); } (3).说明: A:抽象类中不一定

接口和抽象类的异同

接口和抽象类的异同 今天来说说接口和抽象类的异同: 相同点: 都可以定义抽象方法,并且定义的抽象方法都需要被子类或者实现类重写 都不能实例化对象,接口需要赋值实现类对象,抽象类需要赋值子类对象 都可以定义public static 方法,public static final 常量 不同点: 定义方式不同: 抽象类用abstract class定义 接口用interface定义 意义不同: 抽象类是对事物更高级的封装 接口是对功能的实现 内容不同: 抽象类除了可以定义抽象方法之外,还能定义普通类

浅谈java中接口与抽象类之间的异同

刚学习java的时候,总觉得接口和抽象类很像,但又说不上具体有什么区别.今天静下来,翻翻书,查查资料,做个小结.首先举两个例子,看看interface和abstract class 在"外形"上有啥异同. 1.先看一下抽象类: abstract class Person{ private String name; private Person(String n) { name=n; } public abstract String getDescription(); public St

接口和抽象类的异同点

GPS平台.网站建设.软件开发.系统运维,找森大网络科技!http://cnsendnet.taobao.com来自森大科技官方博客http://www.cnsendblog.com/index.php/?p=513 什么是接口? 接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称.参数和返回值.接口方法不能包含任何实现,CLR允许接口可以包含事件.属性.索引器.静态方法.静态字段.静态构造函数以及常数.但是注意:C#中不能包含任何静态成员.一个类可以实现多个接口,当一个类继承某个接口时,

C#中接口和抽象类的区别

什么是接口? 用来定义一种程序的协定.实现接口的类或者结构要与接口的定义严格一致.有了这个协定,就可以抛开编程语言的限制(理论上).C#接口可以从多个基接口继承,而类或结构可以实现多个接口.C#接口可以包含方法.属性.事件和索引器.接口本身不提供它所定义的成员的实现.接口只指定实现该接口的类或接口必须提供的成员. 如何使用接口? 例如: <span style="font-family:KaiTi_GB2312;">using System; using System.Co

总结接口与抽象类的异同点

接口 1 因为java不支持多重继承,所以有了接口,一个类只能继承一个父类,但可以实现多个接口,接口本身也可以继承多个接口. 2 接口里面的成员变量默认都是public static final类型的.必须被显示的初始化. 3 接口里面的方法默认都是public abstract类型的.隐式声明. 4 接口没有构造方法,不能被实例化. 5 接口不能实现另一个接口,但可以继承多个接口. 6 类如果实现了一个接口,那么必须实现接口里面的所有抽象方法,否则类要被定义为抽象类. 抽象类 1 如果将一个类