方法继承

接口/抽象类/方法实现与重写/静态延迟绑定的一些知识点的梳理(PHP实例)

旧街凉风 提交于 2020-03-01 17:36:24
最容易混淆的知识点: 接口中的方法只能为 public 抽象方法可以为 public 和 protected,但不能为 private 如何理解:接口和抽象方法皆为方法的声明,需要让子类去实现方法体,这就要求子类必须有继承权限。同时,接口的扮演角色为对外部访问开放的一组标准,故需为 public。 实现必须以继承为前提,但重写和继承没有依赖关系。 实现的前提为继承,但重写并不需要有继承权限。你可以重写父类的 private 方法,虽然你并没有从父类继承此 private 方法,但依然受到父类的制约:参数必须完全一致。必须遵循重写时的权限可提升规则(子类重写的方法访问权限必须大于等于父类, public > protected > private) 1、Interface 接口是一个标准,是一个约定,而不是一种实现。 接口的目的是为了规范实现类。实现类需要实现接口中定义的所有方法,已实现接口标准化。 接口中的方法必须声明为 public。 因为接口是一套对外开放的标准,之所以必须是 public 权限更倾向了表明对外访问控制层面,而不是子类的继承权限。 interface StudentInterface { public function getName(); public function setName($name); public function getClassInfo(