1. 云栖社区>
  2. PHP教程>
  3. 正文

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

作者:用户 来源:互联网 时间:2017-12-01 11:20:57

接口关键字顺平

韩顺平php视频笔记77 抽象类vs接口 关键字final const - 摘要: 本文讲的是韩顺平php视频笔记77 抽象类vs接口 关键字final const, 继承和实现接口的比较:   (1) 可以认为 实现接口是对单一继承的补充. (2) 可以在不破坏类层级关系的前提下,对某个类功能扩展. ------------------------------------------------

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

继承和实现接口的比较:

 

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

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

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


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

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

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

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

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




以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索接口 , 关键字 顺平 ,以便于您获取更多的相关知识。