抽象类:一个类中至少有一个方法是抽象的,我们称之为抽象类。

要求:

  • 1.一个类中至少有一个抽象方法
  • 2.抽象方法不允许有{}
  • 3.抽象方法前面必须加abstract
  • 4.抽象类只允许被继承,不能实例化

类前面加abstract

<?php abstract class Human {public abstract function getInfo () {echo '我是getInfo';}}
?>

定义了一个Human的抽象类,抽象类中有个抽象方法,执行发现报错

Fatal error: Abstract function Human::getInfo() cannot contain body
  • 抽象方法不能有正文部分(没有方法体),需要去掉花括号
<?php abstract class Human {public abstract function getUserInfo ();public abstract function getWalletInfo ();}class Student extends Human {public function getUserInfo () {echo 'getinfo';}public function getWalletInfo () {echo 'getwalletInfo';}}$Tom = new Student();$Tom -> getUserInfo();$Tom -> getWalletInfo ();
?>
  • 1.抽象类不能被实例化,只能被继承。

2.继承的派生类当中要把所有抽象方法重载才能实例化

abstract class Human {public abstract function getUserInfo ();public abstract function getWalletInfo ();
}class Student extends Human {public function getUserInfo () {echo 'getinfo';}// public function getWalletInfo () {//     echo 'getwalletInfo';// }
}$Tom = new Student();

比如此时派生类种少写了一个getWalletInfo() 方法,就导致new 失败

抽象类的意义:派生类继承抽象类的时候,必须要用抽象类的命名规则去建立方法,否则不允许派生类实例化,其实是申明了一种规范,达到规范方法的目的。

什么是php 抽象类相关推荐

  1. java 抽象方法 虚方法的区别_声明抽象类(纯虚方法)会大幅增加二进制大小

    以下是故事:我正在使用AC6 Toolpack为Linux中的ARM Cortex-M0处理器开发C软件 . 在我使用Keil(在windows中)(拥有自己的工具链)之前,我已经迁移到GNU-too ...

  2. JAVA中的接口和抽象类的区别

    1.一个类可以实现多个接口,但是却只能继承最多一个抽象类: 2.抽象类可以包含具体的方法,接口的所有方法都是抽象的: 3.抽象类可以声明和使用字段:接口则不能,但接口可以创静态的final常量: 4. ...

  3. [19/03/30-星期六] IO技术_四大抽象类_ 字节流( 字节输入流 InputStream 、字符输出流 OutputStream )_(含字节文件缓冲流)...

    一.概念及分类 InputStream(输入流)/OutputStream(输出流)是所有字节输入输出流的父类 [注]输入流和输出流的是按程序运行所在的内存的角度划分的 字节流操作的数据单元是8的字节 ...

  4. 深入理解Java的接口和抽象类

    http://www.cnblogs.com/dolphin0520/p/3811437.html 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口 ...

  5. 接口与抽象类的使用选择

    为什么有的地方必须使用接口而不是抽象类,而在另一些地方,又必须使用抽象类而不是接口呢?或者说,在考虑Java类的一般化问题时,很多人会在接口和抽象类之间犹豫不决,甚至随便选择一种. 首先来了解一下接口 ...

  6. 不允许使用抽象类类型的对象怎么办_Java基础——面试官:你来说说抽象类和接口的区别...

    无论你是新手Java 程序员,还是老手程序员,可能在实际开发中很少自己写抽象类. 但是抽象类在某些时候的功能很强大,可以保证子类中百分百实现父类中的方法 -- 普通类的弊端,消除子类的冗余代码 -- ...

  7. php 类 接口的区别吗,PHP的接口类(interface)和抽象类(abstract)的区别

    /** * 接口类:interface * 其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类, * 那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候 ...

  8. 设计一个扩展自抽象类geometricobject的新的triangle类_C++ 接口(抽象类)

    C++ 接口(抽象类) 接口描述了类的行为和功能,而不需要完成类的特定实现. C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念. 如果类中至 ...

  9. 【C++】多态(早期绑定、后期绑定)、抽象类(纯虚函数)、虚析构函数

    我们都知道面向对象编程的三大特征是封装.继承.多态,今天我们就来说一下其中之一的多态. 概念: 多态: 多态字面意思就是多种形态,C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同 ...

  10. php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析

    本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...

最新文章

  1. 一个实用的PHP缓存实例
  2. [LeetCode] Excel Sheet Column Number
  3. iOS UI基础-6.0 UIActionSheet的使用
  4. CodeForces - 566A Matching Names(字典树上贪心)
  5. 【转】伪静态URLRewrite学习笔记
  6. 【渝粤教育】国家开放大学2018年春季 0273-21T中国现代文学 参考试题
  7. UnicodeEncodeError: 'gbk' codec can't encode character '\xeb' in position 20: illegal multibyte sequ
  8. mybatis 一对多查询 按结果嵌套处理、按查询嵌套处理,以及两者之间的区别
  9. php 汉字转拼音及获取拼音首字母
  10. Hibernate框架 简述
  11. 如何在VB中实现ActiveX控件的IobjectSafety接口
  12. python库管理_Python中管理数据库
  13. 【Excel-2010】VLOOKUP函数
  14. mybatis学习第一次使用
  15. 计算机基础与office应用教程,计算机基础与Office 2010实用教程
  16. Movavi Screen Recorder 10 Mac(全能录屏软件) 中文激活版
  17. 服务器安装系统路径,裸金属服务器安装多路径软件
  18. Matebook xpro2019指纹驱动不可用
  19. Failed to ignore SIGHUP: No error
  20. 基于openssl的3DES(ECB)加密算法

热门文章

  1. 寻找苹果帝国的二当家
  2. 什么叫单模光纤_单模光纤和多模光纤有什么区别
  3. 学生信息管理系统之查:查询成绩信息流程
  4. OSPF、RIP路由双向引入实验报告
  5. 国内外有哪些比较好的电子技术的网站类似github?
  6. [转载]如何提高.NET Compact Framework应用程序的性能 - 黎波 - 博客园
  7. 错误:安装autocad2012的时候提示Command line option syntax error.Type Command/?for help.
  8. [DEFCON全球黑客大会] CTF(Capture The Flag)
  9. sql注入--宽字节注入
  10. Python 语言发展历史