当前位置: 首页> 健康> 母婴 > h5可视化开发工具_广州开发区第二小学北校区_免费源码网站_seozou是什么意思

h5可视化开发工具_广州开发区第二小学北校区_免费源码网站_seozou是什么意思

时间:2025/7/11 1:00:39来源:https://blog.csdn.net/wkj001/article/details/144437713 浏览次数:0次
h5可视化开发工具_广州开发区第二小学北校区_免费源码网站_seozou是什么意思

PHP中接口与抽象类总结

一、接口

1.接口的定义:

接口是定义,类(抽象类)是实现,interface的目的是建立通用标准,只有实现了这些标准,才能被认为实现了接口

2.接口的特点:

1)上下级接口可以通过extends关键词继承
2)接口的所有方法默认都是public权限(因为具体功能要靠实现类实现)
3)接口可以定义常量,不能定义变量
4)一个类可以同时”implements”(实现)一到多个接口;
5)一个工作类必须将接口中的所有方法按照自己的需求去实现,否则该类要定义成抽象类
6)接口不能实例化操作,所以要使用接口中的成员,就必须借助实现类(implements)实现

示例代码

<?phpinterface Person{public $name; //不能声明变量 报错const NAME='tom'// 可以声明常量function test();  //因为接口中全部是抽象方法 所以 省去 abstract 。function test1();Protect function test3() 报错 只可以是 public}$A=new Person; //报错 不可以 创建实例化 对象 。echo Person:: NAME; 输出常量。?>

二、抽象类

定义

1、抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类。
2、抽象类不能被直接实例化。抽象类中只定义(或部分实现)子类需要的方法。子类可以通过继承抽象类并通过实现抽象类中的所有抽象方法,使抽象类具体化。
3、如果子类需要实例化,前提是它实现了抽象类中的所有抽象方法。如果子类没有全部实现抽象类中的所有抽象方法,那么该子类也是一个抽象类,必须在 class 前面加上 abstract 关键字,并且不能被实例化。

抽象类的特点:

1)定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。

2)继承一个抽象类的时候,子类必须定义父类中的所有抽象方法

3)和接口相比,接口只有基本框架,描述了每个方法的功能,相当于一个毛坯房,而抽象类则相当于简装房,实现类就相当于精装房,实现了接口和抽象类的抽象方法的”工作类”。

4)抽象类通常具有抽象方法,方法中没有大括号,抽象类的抽象方法不实现具体功能,由子类完成

5)如果抽象方法有参数,那子类的实现也必须要有相同的参数数量

示例代码

abstract Class AbstractClass
{abstract public function A();//这里不要携带bodyabstract protected function B();//这里不要携带bodypublic function C(){}//这里要携带body
}class ClassA extends AbstractClass
{public function A(){echo "Hello,I'm A <br/>";}protected function B(){echo "Hello,I'm B <br/>";}public function E(){echo "Hello,I'm E <br/>";}
}

三、接口与抽象类的相同点:

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

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

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

四、接口与抽象类的不同点:

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

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

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

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

补充知识

Abstract关键字

abstract关键字用于定义抽象方法与抽象类。

抽象方法指:没有方法体的方法,具体就是在方法声明的时候没有{},而是直接分号结束。一般用abstract定义的方法被称为抽象方法。在interface中所有的方法都是抽象方法。

定义抽象方法形如:

abstract function func_name();

抽象类指:只要一个类里面有一个方法是抽象方法,那么这个类就定义为抽象类。抽象类同样用abstract关键字来定义。关于抽象类的概念,更多了解可以看上面的解释。

Final关键字

final关键字,如果父类中的方法被声明为final,则子类无法覆盖该方法,如果一个类被声明为final,则不能被继承。

Static关键字

static关键字用来定义静态方法和属性,也可以用来定义静态变量以及后期静态绑定。

静态方法和属性:

声明类属性或方法为静态,就可以不实例化类而直接访问。静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。在没有指定访问控制(public,private,protected)的时候,属性和方法默认public。

静态方法不需要通过对象即可调用,所以伪变量$this在静态方法中不可用。

静态属性不可以由对象通过 -> 操作符来访问。

用静态方式调用一个非静态方法会导致一个 E_STRICT 级别的错误。

就像其它所有的 PHP 静态变量一样,静态属性只能被初始化为文字或常量,不能使用表达式。所以可以把静态属性初始化为整数或数组,但不能初始化为另一个变量或函数返回值,也不能指向一个对象。

自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字 self,parent 或 static。

关键字:h5可视化开发工具_广州开发区第二小学北校区_免费源码网站_seozou是什么意思

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: