php面向对象--继承

时间:2021-04-16

  继承

  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 当给不存在的属性赋值时

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章