类修饰符1.abstract修饰的类是抽象类。如果一个类中包含了抽象方法,那么这个类就是一个抽象类(当然一个类中没有抽象方法,我们也可以把这个类定义为抽象类),那么什么是抽象方法,抽象方法就是没有方法体的方法(没有花括号和里面的内容),抽象方法前面也有abstract修饰。抽象类本身是不能实例化的,只有一个类继承它并覆盖了它所有的抽象方法,所以我们可以实例化它的子类abstractclassMy{abstractfunctionsay();}//abstractclassMy{functionsay(){echo'你好';}}2.interface修饰的类是一个接口,类似于抽象类,但它们的区别在于接口的所有方法都是抽象方法,而抽象方法前面没有abstract接口Modification,成员属性必须是常量。接口引用不同于类继承关键字extends,继承只能是单一的,接口可以使用关键字implements进行多次引用,并用逗号分隔。interfacedemo{constNAME="常量对象属性";函数fun1();函数fun2();//抽象方法。}classMyPcextendsRootimplementsdemo,demo2,demo3{...}3.final修饰的类是final类,不能被继承。访问修饰符1.public公共方法和属性,可以在所有类中使用2.static静态方法和变量如果访问控制权限允许,可以直接使用类名加两个冒号而不创建该类的对象"::"调用,静态属性,内存中只有一份,所有实例共享,静态方法不能调用非静态属性。不能使用self::调用非静态属性。functiontest(){static$a=1;$a*=2;echo$a."\n";}test()test()test()//打印结果//2//4//8static变量只初始化赋值一次,后面的测试方法不会再初始化。3.private修饰的方法和变量是private的,只能在本类中调用(private修饰的方法和变量在本类在其他类中实例化时不能调用)4.受保护的方法和变量,5.final修饰方法只能在本类及其子类中使用,不能被覆盖。
