重写(override)
当对父类的方法进行重写时,子类中的方法必须和父类中的对应的方法具有相同的名称,但在php5中不限制输入参数类型,参数数量和返回值类型
子类中的覆盖方法不能比父类中的方法具有更严格的访问权限,如:如果父类的方法为protected, 那么其继承的子类的此方法不能声明为private
声明方法时,如果不定义访问权限. 默认权限为public
构造函数的重写
当子类被实例化时,子类的构造函数被调用, 而父类的构造函数没有被调用! 如果子类中没有声明构造函数, 那么子类将调用父类的构造函数! 构造函数可以被继承.
如果父类中的属性被子类重写, 那么父类中的private有效.而且属性的重写和方法的重写一样,子类中的属性不能比父类中此属性具有更严格的权限.
重载 overLoad
当类中的方法名相同时,称为方法的重载(overload).重载是java等面向对象语言的中重要的部分,但是PHP5不支持重载
static
static的属性和方法只能访问static的属性和方法,不能访问类中非静态的属性和方法.因为静态属性和方法被创建时,可能还没有任何这个类的实例可以被调用.
static的属性,在内存之中只有一份,为所有实例所用.
使用self::来调用当前类的静态成员 静态方法不能调用非静态属性, 即不能使用self::调用,也不能使用$this调用!
如果类中的非静态方法调用了类中的静态属性,那么这个方法将被转换静态方法.
静态方法不能使用$this调用非静态方法.当类中的非静态方法被self::调用时,系统会自动将这个方法抓换称为静态方法.
使用const来声明一个常量, 常量为定值. 一般声明时候前面不需要$符号, 且为大写. 如 const PATH= ' var/www/ ' ; 不可以给常量赋值.
一个类中, 只要有一个抽象放方法,这个类就必须声明为抽象类. 抽象方法在子类中必须被重写!