php面向对象--继承
继承
	extends 关键字来继承类
	被继承的类,我们称之为父类
	继承后的类,我们称之为子类
	子类继承父类非私有的属性和方法
	public 		在本类,子类,以及类的外部都访问
	protected 	保护型的属性,自己以及子类能访问
	private 	私有的不能被继承,只能自己访问
	子类可以访问父类的非私有的属性和方法, 使用$this关键字访问
	覆盖:子类中声明与父类相同名称的属性和方法,
		属性被覆盖后,就无法访问父类的属性
		方法被覆盖后,依旧可以访问父类的方法 parent::方法名()
	final修饰类和方法
		被final修饰的类是不能被继承
		被final修饰的方法不能被子类覆盖 
	static修饰属性和方法
		属性
			static修改的属性是可以修改的,是所有实例共享,也就是属于类,非静态的是每个对象都会保存一份不一样的
			访问:本类中使用  self::$属性名 父类中使用 parent::$属性名
		方法
			static修饰的方法,它里面只能使用静态属性和静态方法,不能使用普通的属性和普通的方法
			访问:类名::静态方法() self::静态方法()
		静态方法和属性的用途,单例设计模式:
			设计模式其实就是前人总结的一些规律
			作为对象的创建模式,单例设计模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局提供这个单例,它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用
	接口
		声明
			interface 接口名{
				//方法是不能有实现
				function 方法名();
			}
		实现接口
			class 类名 implements 接口1,接口2{
				//必须要实现接口中定义的方法,否则会报错
			}
	抽象类
		声明
			abstract class 类名{
				//抽象类当中也可以包含有实现的方法
				function 方法名(){
					//
				}
				//抽象方法不能有实现,一个抽象类中必须要有一个抽象方法
				abstract function 方法名();
			}
		使用
			class 类 extends 抽象类{
				//实现我们的抽象方法
				function 方法名(){
				}
			}
	魔术方法
		__toString	当将对象直接输出时,会调用此魔术方法,此方法返回一个字符串
		__call 		当调用的方法不存在时
		__callStatic 当调用的静态方法不存在时
		__get 		 当访问不存在的属性
		__set 		 当给不存在的属性赋值时
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号