当前位置: 首页 > news >正文

跟着百度学PHP[4]OOP面对对象编程-12-抽象类

什么是抽象方法?我们在类里面定义的没有方法体的方法就是抽象方法。所谓的没有方法体指的是,在方法声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时还要加一个关键字“abstract”来修饰。

 我在好奇,抽象类可以拿来做什么?其实可以当做一个全局变量

 不能实例化,只能继承重写,而且是必须重写

PHP抽象类应用要点:

  1.定义一些方法,子类必须完全实现这个抽象中所有的方法

  2.不能从抽象类创建对象,它的意义在于被扩展

  3.抽象类通常具有抽象方法,方法中没有大括号

PHP抽象类应用重点:

  1.抽象方法不必实现具体的功能,由子类来完成

  2.在子类实现抽象类的方法时,其子类的可见性必须大于或等于抽象方法的定义

  3.抽象类的方法可以有参数,也可以为空

  4.如果抽象方法有参数,那么子类的实现也必须有相同的参数个数

目录====================================

1.声明一个抽象类,抽象方法(案例一)

2.继承一个抽象类(实例二)

=======================================

案例一

<?php 
abstract class test{         //声明一个test抽象类
    public $name;

    abstract public hello(); //声明一个抽象方法
    public world();
}
 ?>

实例二

<?php 
abstract class hello
{
    abstract public function test();
}
/**
* 
*/
class nihao extends hello
{
    public function test(){
        echo "hello world\n";
    }
}

/**
* 
*/
class wohao extends hello
{
    
    public function test(){
        echo "我要成大牛!";
    }
}
$a=new nihao;
$a->test();
 ?>
输出内容如下:
hello world

 

 

THE END


 

相关文章:

  • 工作中用到的自定义控件
  • MySQL传统主从复制(第一弹)
  • MySQL数据库中日期中包涵零值的问题
  • 添加第三方源需要执行更新的时候报错,倒入公钥
  • JavaScript总结3
  • 一个绚丽的downloading动效分析与实现!
  • 判断2的幂次方(多种算法)
  • VMware中装Win2012并配置Hyper-v
  • MySQL运维之神奇的参数
  • IOS技能点
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • Linux学习总结(22)——CentOS7.2安装Nginx
  • JS根据经纬度获取地址信息
  • 源码解读之工具--Source Insight
  • 如果就
  • JS 中的深拷贝与浅拷贝
  • [Vue CLI 3] 配置解析之 css.extract
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • es6
  • github从入门到放弃(1)
  • Java 最常见的 200+ 面试题:面试必备
  • JS字符串转数字方法总结
  • laravel with 查询列表限制条数
  • React Native移动开发实战-3-实现页面间的数据传递
  • Vim Clutch | 面向脚踏板编程……
  • 半理解系列--Promise的进化史
  • 程序员该如何有效的找工作?
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 缓存与缓冲
  • 基于游标的分页接口实现
  • 记一次用 NodeJs 实现模拟登录的思路
  • 解决iview多表头动态更改列元素发生的错误
  • 解析带emoji和链接的聊天系统消息
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 实现菜单下拉伸展折叠效果demo
  • 微信小程序:实现悬浮返回和分享按钮
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 通过调用文摘列表API获取文摘
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • (11)MATLAB PCA+SVM 人脸识别
  • (13):Silverlight 2 数据与通信之WebRequest
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (9)STL算法之逆转旋转
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (四)鸿鹄云架构一服务注册中心
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转)Scala的“=”符号简介
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET单元测试
  • .NET命名规范和开发约定