1、__constract()构造函数知识点
a、实例化对象的时候,如果子类没有构造函数,就调用父类的构造函数。如果子类有构造函数,这首先调用自己。
b、调用父类的构造函数 parent::__constract();
2、PHP不支持多重继承,因为多重继承容易产生二义性。但如果让c->b->a,就可以实现多重继承的功能。
3、多态:即多种形态。可以分为方法的重写和方法的重载,但PHP不支持方法的重载,只支持方法的重写。
a、子类必须要父类具有相同的方法名;
b、子类中重写的方法可以和父类的方法参数个数不一致(不遵循严格标准);
c、子类中覆盖的方法不能比父类被覆盖的方法权限更加严格;
d、私有属性可以被继承,但不能被重写。
4、方法修饰符(一)static(静态的)
a、static修饰的属性为静态属性,static修饰的方法为静态方法;
b、静态属性在加载类的时候就分层内存空间,不需要实例化就可以直接访问静态成员;
c、静态属性在内存中只有一份,为所有的实例共享;
d、静态方法只能访问静态成员,因为静态方法创建的时候,可能还没有类的实例化;
e、访问静态成员语法,类名::静态属性,类名::静态方法;
f、静态成员被继承
5、方法修饰符(二)-final(最终的)
a、final 修饰的类不能被继承;
b、final修饰的方法不能被重写(覆盖)
6、方法修饰符(三)-abstract(抽象的)
a、abstract修饰的类为抽象类,abstract修饰的方法称为抽象方法;
b、如果一个方法只有方法的声明,没有方法的实现,这个方法就称为抽象方法;
c、如果一个类中有一个方法是抽象方法,这个类就是抽象类;
d、抽象类不允许实例化,必须在子类中重新实现;
e、抽象类的作用:抽象类是用来定义规范的,可以使得方法的命名得到统一;
f、抽象类的特点是不能被实例化,如果一个普通类不想被实例化,可以在类的前面用abstract来修饰,阻止实例化。
7、接口(interface)
a、如果一个抽象类中所有的方法就是抽象方法,这个类可以声明成接口;
b、接口是一个特殊的抽象类;
c、接口中的访问修饰符可以省略 ,默认是public;
d、类不能继承接口,只能实现接口(implement);
e、abstract,final不能修饰接口中的抽象方法;
f、类不能多重继承,但是接口可以实现多重继承;
g、在接口的多重实现中,如果有多个同名的抽象方法,只需要实现一次即可。
h、继承类同时实现接口,先要继承类,再实现接口。
8、类常量
1、语法:const 常量名
2、访问常量: 类名::常量名 接口名::常量名;