zoukankan      html  css  js  c++  java
  • php 面向对象二

    多态:

    多态就是多种形态;多态分为方法重写和方法重载,但是php不支持方法重载

    重写:

     

    子类和父类的方法名必须一致,严格标准要求参数必须一致,但是参数可以不一致

    子类中覆盖的方法不能比父类的方法访问权限更加严格(protected->public public->protected

    在一个类中可以有多个同名的方法,根据方法的类型和参数的个数来区分

    私有属性继承和重写的问题

     

    此时是public 执行结果是一个name

    Private情况下

    结果是两个name

     

    在这$this 保存的是B类的对象。

    方法修饰符:

    Static(静态的)修是属性称为静态属性,修饰方法称为静态方法:(加载代码的时候在内存中自动分配空间)不需要实例化可以直接使用静态成员。

    访问:类名::静态成员

    静态成员再内存中只有一份,为所有的实例共用。静态方法中不能访问普通成员,只能访问静态成员。因为静态成员创建的时候,可能还没有任何实例被实例化。

    Self表示当前类的名称

    静态成员可以被继承。

     

    Self的使用可以降低耦合性。程序开发过程的要求是要高内聚低耦合;

    非静态方法被self::调用,自动的转成静态方法;

     

    @self是屏蔽调警告。

    访问属性的时候不行,属性不实例化是不分配空间的,方法是加载在代码区的,所以在加载的时候可以进行转为静态。

     

    确定当前对象

     

    Static::静态成员】称为延时绑定,static表示的是一个类。表示什么类在运行时确定。Self不运行就可以确定是当前所在的类。

    final() 最终的

    Final修饰的类为最终类,不可以被继承。Fianl修是的方法不能够被重写。

    Abstruct 抽象的

    抽象类和抽象方法:

    如果只有方法的声明而没有方法的实现称为抽象方法。

    如果一个类中有一个抽象方法,那么这个类就是抽象类。

    抽象类不允许实例化,必须在子类中重新实现才能实例化。

     

    抽象类的作用:定义同意的方法的名称,防止实例化;

    Interface 接口

    如果一个类中的方法全是抽象方法,那么这个类就可以声明成接口。借口就是一个特殊的抽象类。

    接口中的方法必须是public 默认也是publicimplements来实现接口。

    不能用finalabstract修是接口中的抽象方法。

    命名接口惯例加I,如IPubClass,上述代码命名错误。

    接口允许多重实现。

     

    一个类可以继承类的同时实现接口,必须先继承类然后实现接口。

     

    类常量:const

     

    参数约束:在PHP5.3以后才支持的,只能约束对象,不能约束基本类型。

     

    父类可以指向子类的引用:

     

    自动加载类:

    当页面执行的时候,通过PHP核心程序(Zend Engine)判断用户脚本需要哪个类,如果没有找到,会自动的调用__autoload函数,并且会将缺少的类名传递给__autoload函数。

     

    适用于存放在同一个目录下。

    将类的地址映射到数组中加载:

     

    对存储不规则的类并且数目较少的类适用。

    利用类名规则加载类:

    将同一类型的类放在同一个目录下,比如Model类,Lib类:类名如StuLibTeachModel

     

    Clone__clone()

    对象传的是地址。

     

    Clone是用来复制一个对象

    当执行clone命令的时候,会自动执行__clone()这个函数

     

  • 相关阅读:
    Java反射机制详情
    Jsoup_Select 选择器
    JDK5.0新特性1
    Java注解类型(@Annotation)
    TSINGSEE青犀视频EasyDSS互联网直播/点播平台在出入口车牌识别中的应用
    如何通过视频智能检测平台+无人机对野生动植物进行检测?
    EasyNTS现场维护出现login to server failed:EOF问题调整
    无人机与推流直播平台助力道路交通安全管理
    EasyDSS直播视频卡顿在某一段循环播放问题排查
    EasyDSS如何通过Golang解析命令行参数实现版本号的显示?
  • 原文地址:https://www.cnblogs.com/widows/p/8531326.html
Copyright © 2011-2022 走看看