静态、抽象类、接口
发布日期:2021-10-17 00:06:24
浏览次数:21
分类:技术文章
本文共 1817 字,大约阅读时间需要 6 分钟。
1.静态
普通成员:是属于对象的
静态成员:a.是属于类的;
b.定义时加上关键字 static ;
c.关键字 self:在类中代表该类;
d.调用静态成员符号双冒号::
普通方法是可以调用静态成员的; 静态方法不能调用普通成员
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class Ren { public $name ; public static $zhongzu ; //将普通成员变量变为静态成员变量,加上关键字 static //普通方法 function Say() { echo Ren:: $zhongzu . "你好" ; //echo self::$zhongzu."你好"; //关键字 self:在类中代表该类: 类名修改,可以用这个关键字 } } Ren:: $zhongzu = "战斗民族" ; //调用静态成员使用双冒号:: $r = new Ren(); $r ->Say(); //普通方法可以调用静态方法 |
输出结果就是:战斗民族你好
2.抽象类
抽象类a.它不能被实例化, b.它作为父类使用, c.关键字 abstract
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | abstract class Dongwu //使用关键字 abstract 可以成为抽象类 { public $name ; public $age ; function Run() { echo "跑" ; } } class Dog extends Dongwu //继承父类 { } $d = new Dog(); $d ->Run(); |
实例化子类继承父类就可以输出正确
注意:强行实例化抽象类,会出现错误
抽象类的扩展功能很强,可以不动源代码的基础上扩展出其他的类
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | abstract class YunSuan //抽象类的关键字 abstract { public $a ; public $b ; function Suan() { } } //Jia继承YunSuan并且修改Suan方法 class Jia extends YunSuan { function Suan() { return $this ->a+ $this ->b; } } //Cheng继承YunSuan并且修改Suan方法 class Cheng extends YunSuan { function Suan() { return $this ->a* $this ->b; } } $J = new Jia(); $J ->a=2; $J ->b=10; echo $J ->Suan(); |
3.接口
接口:a.极度抽象的类
b.定义方式 :interface
c.接口中的方法是控制子类必须实现某些功能(接口中出现的方法,子类必须实现)
d.实现接口 关键字:implements
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | interface IUSB //I开头,I就是定义方式的开头 { function Read(); //成员方法:没有函数体,只声明函数名 function Write(); } class ShuBiao implements IUSB //实现接口 关键字:implements { function Read() { echo "鼠标插上" ; } function Write() { echo "chuanshu" ; } } $s = new ShuBiao(); $s ->Read(); |
输出结果就是:鼠标插上
注意:如果子类中没有把父类的方法全部实现,那么输出时会报错;如果子类把父类的方法全部实现了,那么就会输出正确的调用方法答案
转载地址:https://blog.csdn.net/sulan2131/article/details/69101348 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月02日 04时45分55秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
蓝桥杯 - [2013年第四届真题]幸运数(模拟)
2019-04-28
蓝桥杯 - [2013年第四届真题]横向打印二叉树(排序二叉树)
2019-04-28
蓝桥杯 - [历届试题]网络寻路(枚举)
2019-04-28
牛客网 - [中南林业科技大学第十一届程序设计大赛]兑换零钱(背包问题)
2019-04-28
HDU - Robberies(01背包)
2019-04-28
HDU - 最大报销额(01背包|贪心)
2019-04-28
HDU - Coins(完全背包)
2019-04-28
JXFCZX — 砝码称重1(DFS+背包)
2019-04-28
JXFCZX — 质数和分解(完全背包)
2019-04-28
JXFCZX — 花店橱窗(动态规划)
2019-04-28
JXFCZX — 逃亡的准备(多重背包)
2019-04-28
JXFCZX — 庆功会(多重背包)
2019-04-28
AcWing - 扩展欧几里得算法(扩欧)
2019-04-28
AcWing - 高斯消元解线性方程组(高斯消元)
2019-04-28
AcWing - 求组合数 I(递推)
2019-04-28
AcWing - 求组合数 II(预处理&逆元)
2019-04-28
AcWing - 求组合数 III(lucas&逆元)
2019-04-28
AcWing - 求组合数 IV(分解质因数)
2019-04-28
AcWing - 满足条件的01序列(组合数学&卡特兰数)
2019-04-28
AcWing - 快速排序(快排)
2019-04-28