博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类的继承 接口interface/implements
阅读量:5750 次
发布时间:2019-06-18

本文共 1489 字,大约阅读时间需要 4 分钟。

 继承:

关键字:extends,使一个类继承并拥有另一个已经存在类的成员属性和方法,被继承的类称为父类或基类,继承类为子类;

public:       方法或者属性在任何作用域下都可以访问到,而且是默认的,如果没有为一个属性或方法指定访问修饰符,它将是public。

protected:本类和子类可以访问,外部对象不可以调用。
private:      只能在本类访问,子类与外部对象都不可能调用。经过private标记的方法或者属性可以在继承类中重新定义,每一个类只能看到它自己定义                          的私有方法。

name=$name; } function work(){ echo "{
$this->name}我在工作"; } function __destruct(){ //析构函数 } } class son extends father{ //继承父类 function play(){ echo "{
$this->name}我在玩游戏"; } } $my_father=new father("爸爸"); //创建父类对象 $my_father->work(); $my_son=new son("儿子"); $my_son->work(); $my_son->play(); ?>

 

PHP类是单继承,也就是不支持多继承,当一个类需要多个类的功能时,继承就无能为力了,为此PHP引入了接口技术;

一个类可以继承多个接口;一个类只能继承一个抽象类;

接口interface/implements:

接口定义:如果一个抽象类里面的所有方法都是抽象方法,且没有声明变量,而且接口里面所有的成员都是public权限的,那么这种特殊的抽象类就叫接口;

接口使用interface关键字定义,并使用implements来实现接口的方法,且必须完全实现;

实现一个接口:

name; } function setName($_name) { $this->name = $_name; }}$apple = new Apple(); //创建对象$apple->setName("苹果");echo "创建了一个" . $apple->getName();echo "
";echo "MAX_GRADE is " . Apple::MAX_WEIGHT; //静态常量?>

实现多个接口:

抽象类和接口的区别

接口是一个特殊的抽象类,也可以看作是一个模型的规范。接口与抽象类大致区别如下:

    一个子类如果implements一个接口,就必须实现接口中的所有方法(不管是否需要);如果继承一个抽象类,只需要实现需要的方法即可;

    如果一个接口中定义的方法名改变了,那么所有实现此接口的子类需要同步更新方法名;而抽象类中如果方法名改变了,其子类对应的方法名将不受影响,     只是变成了一个新的方法而已;
    抽象类只能单继承,当一个子类需要实现的功能需要继承多个父类时,就必须使用接口;

 

转载于:https://www.cnblogs.com/wyingli/p/7039810.html

你可能感兴趣的文章
CentOS 7下安装部署Oracle11g图文教程
查看>>
F#初学笔记06
查看>>
实战:将企业域名解析委派给企业DNS服务器
查看>>
在Lync 2013环境部署Office Web Apps
查看>>
微软大会Ignite,你准备好了么?
查看>>
读书笔记-高标管事 低调管人
查看>>
Master带给世界的思考:是“失控”还是进化
查看>>
用户和开发者不满苹果iCloud问题多多
查看>>
java.lang.UnsatisfiedLinkError:no dll in java.library.path终极解决之道
查看>>
我的工具:文本转音频文件
查看>>
【许晓笛】从零开始运行EOS系统
查看>>
【跃迁之路】【460天】程序员高效学习方法论探索系列(实验阶段217-2018.05.11)...
查看>>
C++入门读物推荐
查看>>
TiDB 源码阅读系列文章(七)基于规则的优化
查看>>
Spring之旅第八站:Spring MVC Spittr舞台的搭建、基本的控制器、请求的输入、表单验证、测试(重点)...
查看>>
数据结构与算法——常用排序算法及其Java实现
查看>>
你所不知的Webpack-多种配置方法
查看>>
webpack+typescript+threejs+vscode开发
查看>>
python读excel写入mysql小工具
查看>>
如何学习区块链
查看>>