php中普通类 接口类 抽象类 浅谈

一、普通类

1、关键词:class  类名,继承关键字extends

2、继承:只能实现单继承,

3、多态:子类继承可以实现多种功能

4、封装:类有权限机制,私有的只能自己用,受保护的可以被继承,子类的权限必须大于等于父类

5、实例化:可以被实例化

二、接口类

1、关键词 :interface  类名   ,继承关键字 implements

2、继承:可以实现多继承,父类有的方法属性,子类必须有,类可以实现多个接口,用逗号来分隔多个接口的名称

3、多态:同样具有多态性

4、封装:所有的方法,属性都必须是公有的(public)

5、实例化:不能被实例化

6、函数:只定义函数名与参数,权限,无具体逻辑

三、抽象类

1、关键字:abstract 类名

2、继承:只能进行单继承

3、多态:同样具有多态性

4、封装:同样具有封装性

3、实例化:不能被实例化

5、函数:因有抽象函数才有抽象类,抽象类中可以有普通函数抽象函数不能实现逻辑。而普通函数可以例:abstract public function eat($food);

原文地址:https://www.cnblogs.com/huay/p/10904553.html

时间: 2024-10-28 21:39:15

php中普通类 接口类 抽象类 浅谈的相关文章

【接口开发】浅谈 SOAP Webserver 与 Restful Webserver 区别

接口,强大,简单,交互,跨越平台 下面简单阐述这两大接口思想 一 REST: REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性. REST提出设计概念和准则为: 1.网络上的所有事物都可以被抽象为资源(resource) 2.每一个资源都有唯一的资源标识(resource identifier),对资源的操作不会改变这些标识 3.所有的操作都是无状态的 REST简化开发,其架构遵循CRUD原则,该原则告诉我们对于资源(包括网

C# 获取DLL中需要的接口类

[ 需求 ] 使用反射,循环本地DLL文件,获取实现了所需接口的类,并实例化. Loop local dll files by reflection library and assembly library to find all the classes that implement certain interface and create instances for them. 二话不说,先上代码. Talk is cheap. Show me the code. 1 using System

Java中main()的args的知识点浅谈

我们先来了解下Java中main()方法的默认定义格式: public static void main(String[] args){ }1.main方法是程序执行的入口,除了args这个形参变量可以改变外,其他都不能改变. 2.JVM为什么这么定义? 因为JVM在运行这个Java应用程序的时候,首先会调用main方法,调用时不实例化这个类的对象,而是通过类名直接调用,因此需要是限制为public static. JVM规定,不能有返回值,所以返回值类型为void. main()方法中必须有一

关于C#中的变量的初始化问题浅谈

C#变量初始化是C#强调安全性的另一个例子.简单地说,C#编译器需要用某个初始值对变量进行初始化,之后才能在操作中引用该变量.大多数现代编译器把没有初始化标记为警告,但C#编译器把它当作错误来看待.这就可以防止我们无意中从其他程序遗留下来的内存中获取垃圾值. C#变量初始化的操作中有两个方法可确保变量在使用前进行了初始化: ◆变量是类或结构中的字段,如果没有显式初始化,创建这些变量时,其值就默认是0(类和结构在后面讨论). ◆方法的局部变量必须在代码中显式初始化,之后才能在语句中使用它们的值.此

(转)java中equals和等号(==)的区别浅谈

java中的数据类型,可分为两类:1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean   他们之间的比较,应用双等号(==),比较的是他们的值. 2.复合数据类型(类)   当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false.JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个eq

C#枚举中的位运算权限分配浅谈

常用的位运算主要有与(&), 或(|)和非(~), 比如: 1 & 0 = 0, 1 | 0 = 1, ~1 = 0 在设计权限时, 我们可以把权限管理操作转换为C#位运算来处理. 第一步, 先建立一个枚举表示所有的权限管理操作: [Flags] public enum Permissions { Insert = 1, Delete = 2, Update = 4, Query = 8 } [Flags]表示该枚举可以支持C#位运算, 而枚举的每一项值, 我们用2的n次方来赋值, 这样表

接口类抽象类

接口类(抽象类): 在python中是没有接口类,可以把接口类和抽象类视为同一种定义:制定一个规范举例:收到项目经理的要求,写一个支付: #第一版 class Alipay: def __init__(self,money): self.money = money def pay(self): print('zfb支付了%s' % self.money) class Jd: def __init__(self, money): self.money = money def pay(self):

python编程设计模式之接口类和抽象类

接口类 """ 接口类 是一种编程设计模式,在python原本没有接口类 借用Java思想创建的一种规范设计模式 支持多继承,进行多方面规范 """ 例子: from abc import abstractmethod, ABCMeta class Clergy(metaclass=ABCMeta): # 规范子类都要有cure方法 @abstractmethod # 装饰要规范的方法 def cure(self, HP): # 规范方法必须要p

python -------继承 接口类

# 单继承 ***** # 先抽象再继承,几个类之间的相同代码抽象出来,成为父类 # 子类自己没有的名字,就可以使用父类的方法和属性 # 如果子类自己有,一定是先用自己的 # 在类中使用self的时候,一定要看清楚self指向谁 # 多继承 *** # 新式类和经典类: # 多继承寻找名字的顺序 : 新式类广度优先,经典类深度优先 # 新式类中 有一个类名.mro方法,查看广度优先的继承顺序 # python3中 有一个super方法,根据广度优先的继承顺序查找上一个类 ------------