抽象类,接口,魔术方法
抽象类
关键字:abstract
含有抽象方法,(抽象方法必须包含在抽象类里,但抽象类不一定含有抽象方法)。
抽象方法:未被实现的方法,(加 abstract ,子类继承必须实现该方法)。
abstract class Usb{public function load(){echo "usb is loading";}abstract public function unload();//抽象方法 } class Upan extends Usb{public function unload(){//子类中必须实现父类的抽象方法,否则报错echo "usb is unloading";} }
接口
关键字:interface
只含有抽象方法,不能含有普通方法 (接口中的方法都是抽象方法,所以不用写abstract)
继承用implements
//接口 interface Usb1{public function load(); } //接口扩展 interface Usb2 extends Usb1{//接口也可以继承其他的接口public function run(); } class Upan1 implements Usb2{public function load(){echo "usb is load";}public function run(){echo "usb is run";} }
魔术方法:
__construct 构造方法
__destruct 析构方法
__call 当调用不存在或无权访问的方法时,会自动调用该方法
class Parents{//call()必须带两个参数,第一个为调用的不存在的方法名,第二个为方法里的参数 数组。public function __call($i,$j){echo '不存在'.$i;var_dump($j);}}$p1 = new Parents();$p1->b('abc');
__get 当调用无权访问的属性时,自动调用该方法
必须带一个参数,为不存在的属性名
__set 类中某属性,对象无权操作(即不能设置值)时,自动调用该方法
必须带两个参数,分别为无权操作的属性名,设置的值。
__isset 当用isset()判断一个属性或方法存在与否时,自动触发__isset()
必带一个参数,为变量名
class Parents{private $a;public function __isset($i){echo'无权判断变量是否存在'.$i; }}$p1 = new Parents();$p2=isset($p1->a);
__unset 当用unset()删除一个属性或方法时,自动触发__unset()
必带一个参数,为变量名
__toString 调用这个类时会执行这个函数,return 输出这个类的说明。
转载于:https://www.cnblogs.com/SSs1995/p/9350519.html
抽象类,接口,魔术方法相关推荐
- 0607am抽象类接口析构方法tostring小知识点
/* class ren { public static $color;//静态 static function () { ren::$color; self::$color;//self只能写在类里 ...
- 测试私有方法_Java基础之抽象类、接口作为方法参数和返回值
不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...
- 抽象类、接口作为方法返回值和参数
1.抽象类作为方法的参数 抽象类作为方法参数传递时,需要传入一个实现抽象类所有抽象方法的子类对象. 2.抽象类作为方法的返回值 抽象类作为方法的返回值时,需要返回一个实现了抽象类所有抽象方法的子类对象 ...
- 零基础入门 自学 JAVA SE 基础篇(九)instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface)
JAVA SE自学 基础篇 多态 instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface) 目标 父类型与子类型之间的转换及instanceo ...
- Java复习五:抽象类+模板设计方法+接口+三种工厂模式
抽象类 类的设计应该保证父类和子类能够共享特征.有时将一个父类设计的非常抽象,以至于它没有具体的实例,这样的类叫做抽象类 abstract可以修饰类.抽象类 抽象类不可以实例化 抽象类中一定有 ...
- php 对象 final,PHP7_OOP_对象重载以及魔术方法_对象遍历_final关键字
//对象遍历: class MyClass{ public $var1 = "value 1"; public $var2 = "value 2"; publi ...
- python魔术方法abstract_python学习之面向对象高级特性和魔术方法
01_property商品应用.py 分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一. 类属性应用需求: 对于京东商城中显示电脑主机的列表页面,每次请求不可能把数 ...
- Python的面向对象,魔术方法、类的三大特征、自省、实例空间、经典类与新式类
目录 1.什么是面向对象 1.1 面向过程 1.2 面向对象 1.3 面向对象的优点 2.类 2.1 什么是类.对象,方法和属性 2.2 类的定义和使用 2.2.1 类名规范和类的写法 2.3 魔术方 ...
- php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析
本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...
最新文章
- 下载银海浏览器_【教师研培】停课不停学 停课不停研 ——记银海学校全体英语教师参加市教科院“超越时空 传递智慧”第二轮教研直播活动...
- js实现数据结构及算法之二叉树(Binary Tree)
- php如何定义和使用常量,如何在PHP中定义和使用常量
- spring 各个jar包的功能
- 18 个常犯的统计学错误,建议收藏!
- Java应用性能调优工具介绍及实践
- docker 获取宿主机ip_Docker基础修炼6——网络初探及单机容器间通信
- 籍贯怎样填写_公务员考试:什么是考生户籍、生源地和籍贯?
- 旷视提出Circle Loss,革新深度特征学习范式 |CVPR 2020 Oral
- 【Redis】Redis 基础知识 常用命令 命令积累
- Python中的抽象
- python3的fft_FFT乘法Python 3.4.3
- 从《牛津高阶英汉词典》中提取单词(1)
- 江苏计算机小高考2016,2016江苏小高考成绩揭晓 生物化学4A不易
- 计算机机房大气压强的标准,标准大气压
- ZBrush中的法线贴图你知道吗?
- 北京地铁2015年规划(清晰、大图、可下载)
- win10计算机不分区,win10系统自带无损分区且数据不丢失的处理方案
- UpdateData用法解释
- 在计算机软件中 BIOS的中文意思是,BIOS是什么意思?电脑主板bios在哪里?
热门文章
- springboot 指定 logback_spring boot与日志
- Ubuntu18.04没有WiFi怎么解决(图文详解)
- web表格增删改_白话django之数据的增删改
- 计算机组成原理第一章(跟着王道课程做的笔记)
- 合并两个xml文件 php_怎样合并两个pdf文件
- pythonmysql数据分析_利用Mysql进行python的数据分析
- java 获取当前时间并转化为yyyy-MM-dd HH:mm:ss格式(性程安全模式与不安全)
- MYSQL常用查询函数
- oracle数据库影响网络延时,磁盘排序对Oracle数据库性能的影响-通信/网络-与非网...
- 支付宝mysql集群_支付宝支撑2135亿成交额的数据库架构原理