继承和实现接口的比较:

(1) 可以认为 实现接口是对单一继承的补充.

(2) 可以在不破坏类层级关系的前提下,对某个类功能扩展.

-------------------------------------------------------------------------------------------------------------------------------------------------------------

1. 如果我们希望某个类不被其它的类来继承(可能因为安全考虑...), 可以使用final

<?php

final class A{

}

class B extends A{

}

echo "ok";

?>

2. 如果我们希望某个方法,比如计算个人所得税的方法,不能子类改写,可以使用fianl 来修饰方法

class 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);

3. final关键字不能去修饰属性.????????????

----------------------------------------------------------------------------------------------------------------------------

u const 关键字的讲解

//当你有一个属性,不希望被修改,则考虑使用const 做成常量

基本用法是

class A{

const 常量名=赋初值;

}

interface 接口名{

const 常量名=赋初值;

}

常量是public

使用 类名::常量名; 接口名::常量

<?php

class A{

//常量在定义的时候,必须给初值.

//const 关键字前面不要带修饰符号.

const TAX_RATE=0.08;

public function payTax($val){

//常量不能修改.

//A::TAX_RATE=0.01;

//return $val*self::TAX_RATE; 【ok】

return $val*A::TAX_RATE; //【ok】

}

}

$a=new A();

echo $a->payTax(200);

?>

1. 常量在定义的时候需要赋初值

2. 常量不能修改.

3. 常量名不能有 $, 一般是大写, 默认是public

4. 常量在类的内部使用 self::常量的名称 类名::常量的名称

在类的外部使用 类名::常量的名称.

韩顺平php视频笔记77 抽象类vs接口 关键字final const相关推荐

  1. 韩顺平php视频笔记75-76 抽象类 接口

    抽象 为什么设计抽象类这个技术? 1. 在实际开发中,我们可能有这样一种类,是其它类的父类,但是它本身并不需要实例化,主要用途是用于让子类来继承,这样可以到达代码复用. 同时利于项目设计者,设计类. ...

  2. 韩顺平php视频笔记83-87 防盗链 $_SERVER http协议相关 文件相关

    第83集略(内容之前讲过) http协议 1. http协议是建立在  tcp/ip协议基础上. 2. 我们的web开发数据的传输都是依赖于http协议. 3. http协议全称是 超文本传输协议 h ...

  3. 韩顺平php视频笔记80 81 错误日志 异常捕获

    php错误日志保存 保存错误日志的用处是便于,后续分析. 基本方法是使用 error_log来实现. 基本用法是: //自定义错误函数 function  my_error3($errno,$errm ...

  4. 韩顺平php视频笔记79 80 错误和异常处理的机制 错误处理器 错误触发器

    注意:php中 php中错误和异常处理的机制 如果没有错误处理机制怎样? <?php //打开文件- $fp=fopen("aaa.txt","r"); ...

  5. 韩顺平php视频笔记72-74 面向对象编程的三大特征3 重载override与重写overload 魔术常量

    php中的重载感觉不是很完善 [注意]php不能以参数列表不同的形式来构成重载,构造方法同样也不行 PHP5 中如何通过魔术函数来实现方法重载的效果 代码说明 <?php class  A{ p ...

  6. 韩顺平php视频笔记71 面向对象编程的三大特征2 访问修饰符 继承

    php提供了三种访问控制符号. 有三种 1. public  表示全局,可以在本类,类外部,子类 中使用 2. protected 表示受到保护, 可以在本类, 子类中使用 3. private 表示 ...

  7. 韩顺平php视频笔记70 面向对象编程的三大特征1 抽象 封装

    php面向对象编程的三大特征 ① 封装 ② 继承 ③ 多态 class Account { public $blance; public $no; public function qun(){ } p ...

  8. 韩顺平php视频笔记69 静态变量与静态方法

    静态变量(类变量)与静态方法(类方法) 思路: 1. 使用全局变量 * 什么是全局变量, 在程序中,都可以使用的变量称为全局变量. 当我们了解全局变量后,我们来看看如何解决问题? <?php / ...

  9. 韩顺平php视频笔记68 析构函数 php垃圾回收机制

    以上注释取消后,对象析构方法执行顺序为: p1 p3 p2

最新文章

  1. 候选翻译文章列表[示范]
  2. Spark的RDD 文件读取与保存
  3. dim private public static_static方法 (静态方法)
  4. django-oscar-paypal出现UnicodeEncodeError: 'latin-1' codec can't encode characters in position XXXX
  5. C++笔记-lambda表达式需要注意的地方
  6. 高并发整体可用性:大规模集群下的分片管理策略
  7. 一个前端博客(7)——事件绑定和移除事件
  8. eclipse集成testng插件
  9. C语言实现二路归并排序
  10. 【竞赛篇-国创(大创)线上报告撰写(常用套话总结)】季度报告、中期报告、结题报告怎么写,用什么格式,附件传什么比较好
  11. XDOJ(智慧平台)--分配宝藏(用动态规划dp算法解决)(C语言)
  12. 《如何阅读一本书》读书计划
  13. Spark中组件Mllib的学习27之逻辑回归-多元逻辑回归,较大数据集,带预测准确度计算
  14. oracle的job引起数据库崩溃,JOB忽然停止工作了
  15. 【DBA】 Oracle 学习路线
  16. 2020牛客国庆集训派对day2 补题J
  17. 如何判断两个QQ好友之间是否为好友关系
  18. 艾泰转发规则虚拟服务器,艾泰HiPER 510典型配置案例详解
  19. Python登录大连交通大学教务在线实现成绩查询
  20. nexus7二代刷Linux,大饱眼福: Nexus 7二代全拆解

热门文章

  1. 关于SpringBoot下template文件夹下html页面访问的一些问题
  2. 拖放获取文件信息的bat代码
  3. 二分图匹配(Luogu3386)
  4. 20165208 课下作业
  5. ubuntu14.04 remmina远程连接rdp服务器失败解决办法
  6. openlayers 中的一些方法
  7. java http 返回值_java发送http请求,无需等待返回结果
  8. 从Oracle数据库故障到AIX内存管理
  9. MySQL SQL 优化命令行问题 SQL 抓取方式
  10. 刑侦高考:如何用SQL解决环环相扣的刑侦推理问题