1.接口不能被实例化。
2.接口中的所有方法,都不能有方法体。
3.一个类可以去实现多个接口,用逗号将接口隔开
4.接口的方法必须是public,不能是protected 和private,public 可以不用写 默认就是public
5.接口中可以有属性,但是属性必须是一个const 修饰的常量。
6.一个接口不能继承其他的类,但是接口跟接口之间可以继承
一个接口可以继承多个其他的接口,当一个类去实现某些接口,则必须把所有的接口方法都要实现
一个类可以在extends的同时去 implements 某几个接口interface
接口的基本语法以及接口的实现方法:
interface method{
function doller();
function doller2();
}
class A implements method{
function doller(){
.......................
}
function doller2(){
...........................
}
}
继承和实现接口的比较:
1 可以认为实现接口是对单一继承功能的补充。
2 可以在不破坏层级关系的前提下,对某个类的功能进行扩展。
final关键字
1如果我们希望某个类不被其他的类来继承(出于某些安全因素的考虑),可以使用final关键字
<?php
final class a{
}
//加了final后 下面会报错
class b extends a{
}
?>
2 如果我们希望某个方法 比如计算个人所得税的方法,不能再子类中改写,可以使用final来修饰
<?php
class A{
public function getRate($salary){
return $salary*0.08;
}
}
class b extends A{
//getRate方法不能被覆盖掉且不能被重写
public function getRate($sal){
}
}
?>
3 final关键字不能去修饰成员属性
const关键字
1常量定义的时候必须要赋予初值,且不能带修饰符,本身其实就是public
2常量的值不能修改。
3访问常量的时候 有两种方式:① 类名::常量名
② self::常量名
4常量可以被继承
5一个常量是属于某一个类的,而不是属于某个对象 这个从访问常量的两种方式中可以看出来
const 通常用在一些固定不变的属性,比如圆周率,税率等等。