码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象的继承

时间:2018-11-10 15:04:33      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:ext   idt   prot   部分   权限   特性   一个   保留   fine   

一、目标:

    清除重复代码

二、实现:

    1. 将重复代码提取出来

    2. 建立联系    extends 关键字  词义是扩展 用于继承

三、什么是父类 和子类

      被继承的类  成为父类(基类)

      继承其他类的类 成为 子类 (派生类)

四、继承的特性(重点重点)

    a) php只支持单继承 只能有一个爹

    b) php可以被多个继承 一个爹可以有多个儿子

    c) php支持多层继承  可以有祖孙关系

      B继承AC继承B ,那么C里面就有ABC三个类里面的所有内容

    d) 子类会拥有父类中的所有内容但是有部分内容无法访问(封装)

五、属性继承(重写 重构)

  1. 子类里面的属性会覆盖父类中的同名属性
  2. 访问属性的时候一定是最终结果(被子类覆盖的结果,除了私有的)
  3. 权限只能扩大 不能缩小

 

父类

子类

public

public

protected

public protected

private

public protected private

 

 六、方法继承(重写 重构)

  1. 子类里面的方法会覆盖父类中的同名方法
  2. 访问方法的时候一定是最终的结果(被子类覆盖之后的结果 除了私有的)
  3. 重写的时候 参数结构(参数个数 和参数是否有默认值)建议保持一致
  4. 权限只能扩大 不能缩小

父类

子类

public

public

protected

public protected

private

public protected private

  5.可以调用父类中的方法 需要使用范围操作符


     ::    A::say()   parent::say()

    parent 代表的是父类

    要求: 重写构造方法的时候 务必在第一行调用父类中的构造方法

七、关键字

  1. final (最终的)(掌握)

     final 可以修饰类和方法

    被修饰的类不能被继承

    被修饰的方法不能重写

   2.static

    a) 可以修饰属性和方法  不能修饰类

    b) 静态成员需要使用范围操作符来访问 A::$name 如果你访问的是静态属性一定要加上$ A::say()

    c) 静态的成员方法里面不能出现非静态内容 $this 和非静态成员

    d) 静态方法里面只能使用静态属性

   3.const

      可以在类里面定义常量

      值保留类里面的属性默认值特性

      类里面定义的常量 需要使用范围操作符类访问

      A::DB B::DB

   4.define

       不能在类里面定义常量

   5.运算符 instanceof

      判断前面的这个对象是否是后面这个类的实例

      祖辈关系都行

 

面向对象的继承

标签:ext   idt   prot   部分   权限   特性   一个   保留   fine   

原文地址:https://www.cnblogs.com/abinlulu/p/9938689.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!