一、什么是抽象方法?

  一个方法如果没有方法体(不使用"{}",直接使用分号结束的方法,才是没有方法体的方法),则这个方法就是抽象方法

1、声明一个方法,不使用{},而直接分号结束

2、如果是抽象方法,必须使用abstract(抽象关键字来修饰)

二、什么是抽象类

1、如果一个类中有一个方法是抽象的方法,则这个类就是抽象类

2、如果声明一个抽象类,则这个类必须使用abstract关键字修饰

<?php
//声明一个抽象类,要使用abstract关键字识别
abstract class Person{
protected $name;
protected $country; //在抽象类中声明一个没有方法体的抽象方法
abstract function say(); //在抽象类中可以声明正常的费抽象的方法
function run(){
echo '我正在走路'; //有方法体,输出一条语句
}
}
?>

注意:

  1、只要使用abstract修饰的类,就是抽象类

  2、抽象类是一种特殊的类,在抽象类中可以有抽象方法

  3、除了抽象类可以有抽象方法,意外,和正常的类完全一样

  4、抽象类不能实例化对象

三、抽象方法的作用

  1、抽象方法的作用就是规定了,子类必须有这个方法的实现,功能交给二子类

  2、只写出来结构而没有实现,实现交给具体的子类去实现

<?php
//声明一个抽象类,要使用abstract关键字识别
abstract class Person{
public $name;
public $country; function __construct($name='',$country='China'){
$this ->name = $name;
$this ->country = $country;
} //在抽象类中声明一个没有方法体的抽象方法
abstract function say(); //在抽象类中可以声明正常的费抽象的方法
abstract function run();
}
class student extends Person{
function say() {
echo '我是中国人';
}
function run() {
echo '我正在跑步';
}
}
?>

注意:

1、抽象类不能实例化对象(不能创建对象)

2、如果块钱按键抽象类,就必须写这个类的子类,将抽象类中的抽象方法覆盖(加上方法体)

3、子类不许全部实现(覆盖重写)抽象方法,这个子类才能创建对象,如果只实现部分,那么还有抽象方法,则类必须是抽象类

四、抽象类的作用

就是要求子类的结构,所以抽象类就是一个规范

最新文章

  1. 64位系统下找不到office 32位组件
  2. macbook安装win7
  3. 使用Android点击按钮跳转页面
  4. ruby on rails 2.3+的版本不再支持cgi
  5. 实验十四_访问CMOS RAM
  6. linux第1天 fork exec 守护进程
  7. NodeJS - Express 3.0下ejs模板使用 partial展现 片段视图
  8. iOS开发的小技巧(断点打印)
  9. POJ 3683 Priest John&#39;s Busiest Day (2-SAT,常规)
  10. 射频识别技术漫谈(12)&mdash;&mdash;三次相互认证【worldsing笔记】
  11. Prism for WPF 第一讲 Event机制
  12. Lua运算符
  13. 关于表单的jQuery练习
  14. jquery $.ajax $.get $.post的区别
  15. BZOJ 1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛( LIS )
  16. 如何在多个项目中分离Asp.Net Core Mvc的Controller和Areas
  17. CSS3选择器在HTML5中的使用
  18. 新概念英语(1-97)A Small Blue Case
  19. [转]在ASP.NET Core中使用百度在线编辑器UEditor
  20. Python 爬虫 解析库的使用 --- XPath

热门文章

  1. mongo 改数据库名称
  2. CSS 盒子模型属性
  3. 剑指offer 面试题36.二叉搜索树与双向链表
  4. Bug搬运工-Forerunner CRC error on 54SG/53SG3 triggers watchdog timeout crash
  5. Docker - dockerhub 相关命令
  6. 数据查询SELECT FROM
  7. C++子类虚函数表指针
  8. 【WPF学习】第十四章 事件路由
  9. Dubbo监控中心搭建-dubbo-monitor-simple的使用
  10. MAC记住 git的用户名密码