抽象类

  关键字: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

抽象类,接口,魔术方法相关推荐

  1. 0607am抽象类接口析构方法tostring小知识点

    /* class ren { public static $color;//静态 static function () { ren::$color; self::$color;//self只能写在类里 ...

  2. 测试私有方法_Java基础之抽象类、接口作为方法参数和返回值

    不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...

  3. 抽象类、接口作为方法返回值和参数

    1.抽象类作为方法的参数 抽象类作为方法参数传递时,需要传入一个实现抽象类所有抽象方法的子类对象. 2.抽象类作为方法的返回值 抽象类作为方法的返回值时,需要返回一个实现了抽象类所有抽象方法的子类对象 ...

  4. 零基础入门 自学 JAVA SE 基础篇(九)instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface)

    JAVA SE自学 基础篇 多态 instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface) 目标 父类型与子类型之间的转换及instanceo ...

  5. Java复习五:抽象类+模板设计方法+接口+三种工厂模式

    抽象类 类的设计应该保证父类和子类能够共享特征.有时将一个父类设计的非常抽象,以至于它没有具体的实例,这样的类叫做抽象类 abstract可以修饰类.抽象类 ​ 抽象类不可以实例化 ​ 抽象类中一定有 ...

  6. php 对象 final,PHP7_OOP_对象重载以及魔术方法_对象遍历_final关键字

    //对象遍历: class MyClass{ public $var1 = "value 1"; public $var2 = "value 2"; publi ...

  7. python魔术方法abstract_python学习之面向对象高级特性和魔术方法

    01_property商品应用.py 分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一. 类属性应用需求: 对于京东商城中显示电脑主机的列表页面,每次请求不可能把数 ...

  8. Python的面向对象,魔术方法、类的三大特征、自省、实例空间、经典类与新式类

    目录 1.什么是面向对象 1.1 面向过程 1.2 面向对象 1.3 面向对象的优点 2.类 2.1 什么是类.对象,方法和属性 2.2 类的定义和使用 2.2.1 类名规范和类的写法 2.3 魔术方 ...

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

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

最新文章

  1. 下载银海浏览器_【教师研培】停课不停学 停课不停研 ——记银海学校全体英语教师参加市教科院“超越时空 传递智慧”第二轮教研直播活动...
  2. js实现数据结构及算法之二叉树(Binary Tree)
  3. php如何定义和使用常量,如何在PHP中定义和使用常量
  4. spring 各个jar包的功能
  5. 18 个常犯的统计学错误,建议收藏!
  6. Java应用性能调优工具介绍及实践
  7. docker 获取宿主机ip_Docker基础修炼6——网络初探及单机容器间通信
  8. 籍贯怎样填写_公务员考试:什么是考生户籍、生源地和籍贯?
  9. 旷视提出Circle Loss,革新深度特征学习范式 |CVPR 2020 Oral
  10. 【Redis】Redis 基础知识 常用命令 命令积累
  11. Python中的抽象
  12. python3的fft_FFT乘法Python 3.4.3
  13. 从《牛津高阶英汉词典》中提取单词(1)
  14. 江苏计算机小高考2016,2016江苏小高考成绩揭晓 生物化学4A不易
  15. 计算机机房大气压强的标准,标准大气压
  16. ZBrush中的法线贴图你知道吗?
  17. 北京地铁2015年规划(清晰、大图、可下载)
  18. win10计算机不分区,win10系统自带无损分区且数据不丢失的处理方案
  19. UpdateData用法解释
  20. 在计算机软件中 BIOS的中文意思是,BIOS是什么意思?电脑主板bios在哪里?

热门文章

  1. springboot 指定 logback_spring boot与日志
  2. Ubuntu18.04没有WiFi怎么解决(图文详解)
  3. web表格增删改_白话django之数据的增删改
  4. 计算机组成原理第一章(跟着王道课程做的笔记)
  5. 合并两个xml文件 php_怎样合并两个pdf文件
  6. pythonmysql数据分析_利用Mysql进行python的数据分析
  7. java 获取当前时间并转化为yyyy-MM-dd HH:mm:ss格式(性程安全模式与不安全)
  8. MYSQL常用查询函数
  9. oracle数据库影响网络延时,磁盘排序对Oracle数据库性能的影响-通信/网络-与非网...
  10. 支付宝mysql集群_支付宝支撑2135亿成交额的数据库架构原理