漫谈PHP的抽象类和抽象方法以及接口总结

 更新时间:2019年3月15日 13:47  点击:375

抽象类总结:

  1. 抽象类:

1、如果一个类中有一个方法是抽象方法,则这个类就是抽象类;
2、抽象类必须加上abstract关键字修饰;

  1. 抽象方法:

定义:一个方法如果没有方法体,则这个方法就是抽象方法
1、一个方法没有方法体,直接用分号结束的方法;
2、如果是抽象方法,必须使用abstract抽象关键字形容

注意:1、只要有abstract修饰的类就是抽象类
     2、除了在抽象类中可以有抽象方法之外,和正常的类完全一样
   3、抽象类不能实例化对象
   4、如果有抽象类,就必须有这个类的子类,并且在子类中写方法覆盖抽象类中的抽象方法(加上方法体)
   5、子类必须全部重写父类中的抽象方法,这个子类才能被实例化,如果只是实现部分,那么这个子类还是抽象类

抽象类的作用:就是严格要求子类的结构,所以抽象类其实就是一个规范。

抽象方法的作用:就是规定子类必须有这个方法,且将功能交给子类来处理,只写出来方法的结构,而没有实现(无方法体),具体的功能实现交给具体的子类根据自己的需求实现

//抽象类
abstract class Person
{
 public $name;
 public $age;
 
 //抽象方法
 abstract function say();
 
 abstract function eat();
 
 function run()
 {
 echo "hello world";
 }
 
 function sleep()
 {
 echo "test";
 }
}

// 抽象类的子类

class StudentCn extends Person
{
 function say()
 {
 echo "我说中文<br>";
 }
 
 function eat()
 {
 echo "我用筷子吃饭";
 }
}

接口:接口是一种特殊的抽象类

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

2、抽象类和接口都不能实例化

3、抽象类和接口的使用意义(即作用)相同

比较:

a、接口中的方法,必须全部是抽象方法,所以接口中的抽象方法不需要使用abstract关键字,直接用分号结束即可
b、接口中的成员属性,必须是常量(不能有变量)
c、所有的方法必须全部是public
d、声明接口不适用class,而是使用interface

Tips:

1、可以使用extends让一个接口继承另一个接口,即常用的继承(扩展新抽象方法),无覆盖的关系
2、可以使用一个类来实现接口中全部方法,也可以使用一个抽象类,来实现接口中的部分方法
3、不要使用extends这个关键字,使用implements实现implements相当于extends
4、一个类可以在继承另一个类的同时,使用implements实现一个接口,也可以实现多个接口(一定要先继承,再实现接口)

// 接口

interface Demo
{
 const Name = "妹子";
 const Age = 10;
 
 function test();
 
 function test2();
}
echo Demo::Name;//访问常量
 
//接口继承接口,用于扩展接口

interface Test extends Demo
{
 function test4();
}
 
//普通类
class world
{
 function test5(){}
}
 
 
//继承+接口

class Hello extends World implements Test
{
 
 function test()
 {
 }
 
 function test2()
 {
 }
 
 function test3()
 {
 }
 
 function test4()
 {
 }
 
 function test5()
 {
 }
 
}

原文链接:https://www.cnblogs.com/Steven-shi/p/8603511.html

[!--infotagslink--]

相关文章

  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • c# 三种方法调用WebService接口

    这篇文章主要介绍了c# 三种方法调用WebService接口的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-07
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • vue接口请求加密实例

    这篇文章主要介绍了vue接口请求加密实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-12
  • PHP中func_get_args(),func_get_arg(),func_num_args()的区别

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • PHP编程 SSO详细介绍及简单实例

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • SpringBoot接口接收json参数解析

    这篇文章主要介绍了SpringBoot接口接收json参数解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-19
  • PHP实现创建以太坊钱包转账等功能

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • C# Rx的主要接口深入理解

    这篇文章主要介绍了C# Rx的主要接口深入理解的相关资料,需要的朋友可以参考下...2020-06-25
  • C#简单了解接口(Interface)使用方法

    这篇文章主要介绍了C#简单了解接口(Interface)使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-12-08
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • Feign接口方法返回值设置方式

    这篇文章主要介绍了Feign接口方法返回值设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-08
  • 如何设计一个安全的API接口详解

    在日常开发中,总会接触到各种接口,前后端数据传输接口,第三方业务平台接口,下面这篇文章主要给大家介绍了关于如何设计一个安全的API接口的相关资料,需要的朋友可以参考下...2021-08-12
  • PHP如何通过date() 函数格式化显示时间

    这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
  • php怎么写api接口?php写api接口的实例代码

    php怎么写api接口?本文介绍了php写api接口的实例代码,有兴趣的同学可以参考一下。 http://localhost/openUser.php?act=get_user_list&type=json在这里openUser.php...2017-07-06
  • vue设置全局访问接口API地址操作

    这篇文章主要介绍了vue设置全局访问接口API地址操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-14
  • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单

    首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31
  • vue配置多代理服务接口地址操作

    这篇文章主要介绍了vue配置多代理服务接口地址操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-08
  • C#处理和对接HTTP接口请求的方法

    下面通过四步给大家介绍了c#处理和对接http接口请求的方法,分步骤介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看下吧...2020-06-25