PHP 继承与实现比较 final和const修饰符说明
来源:互联网 发布:区块链 拜占庭算法 编辑:程序博客网 时间:2024/05/22 03:31
继承和实现接口的比较:
(1)可以认为 实现接口是对单一继承的补充.
(2)可以在不破坏类层级关系的前提下,对某个类功能扩展.
final关键字
1.如果我们希望某个类不被其它的类来继承(可能因为安全考虑...), 可以使用final
// final class A{
// }
//此时,B类不能继承A类
// class B extends A{// }
// echo "ok";
2.如果我们希望某个方法,比如计算个人所得税的方法,不能子类改写,(不希望该方法被子类中方法重载 )可以使用fianl 来修饰方法
<?phpclass A{ final public function getRate($salary){ return $salary*0.08; }}class B extends A{ //不能去覆盖父类的getRate方法. /*public function getRate($sal){ return $sal*0.01; }*/} $b=new B();echo $b->getRate(100)."<br/>";?>
final关键字不能去修饰属性.
const 关键字的讲解//当你有一个属性,不希望被修改,则考虑使用const 做成常量
// 基本用法是
// class C{
// //常量在定义的同时必须赋初值
// const 常量名=赋初值;
// }
// interface 接口名{
// //常量在定义时就要赋储值
// const 常量名=赋初值;
// }
// 常量不能写修饰符,默认是public,但不能写出来
// 常量名一般全部用大写字母表示
// 使用 类名::常量名; 接口名::常量
<?php class Z{ //常量在定义的时候,必须给初值. //const 关键字前面不要带修饰符号,但默认为public. const TAX_RATE=0.08; public function payTax($val){ //常量不能修改. //Z::TAX_RATE=0.01; //return $val*self::TAX_RATE; 【ok】 return $val*Z::TAX_RATE; //【ok】 } } $a=new Z(); echo $a->payTax(200);?>
注意:
1.常量在定义的时候需要赋初值2.常量不能修改.
3.常量名不能有 $, 一般是大写, 默认是public
4.常量在类的内部使用 self::常量的名称 或 类名::常量的名称 表示
在类的外部使用 类名::常量的名称 表示.
5.常量可以被子类继承
6.常量是属于 类 的,不是属于某个对象
0 0
- PHP 继承与实现比较 final和const修饰符说明
- 第77讲 继承与实现比较 final const
- static和final修饰符
- final和static修饰符
- const修饰符 const与指针
- PHP自学之路-----接口VS继承、final、const
- const修饰符和指针
- const修饰符和指针
- static和const修饰符
- Java面向对象04-继承,访问控制修饰符,static和final
- final修饰符与类型转化
- java static与final修饰符
- 修饰符static、final、abstract与接口
- 修饰符static和final简单介绍
- java中的修饰符final和static
- Java static 和 final 修饰符
- static和final两种修饰符
- 关于final修饰符的几点说明
- http urlconnection getcontentlength总返回值为-1
- Android 开源项目android-open-project解析之(四) ColorPickView,GraphView,UI Style,Other
- 桥接模式
- Java-静态代码块
- Dijkstra 算法
- PHP 继承与实现比较 final和const修饰符说明
- 计算机图形学-多边形填充法
- getRequestDispatcher 和sendRedirect区别
- 我的第一篇csdn笔记
- [系统-Linux]配置yum,安装nc,telnet
- 浅谈 Python 的 with 语句
- atc工具使用-国内运营商的网络环境
- POJ 1727 Advanced Causal Measurements (ACM)(二分+贪心)
- android计时demo源代码