什么是类?
类是定义一系列属性和操作的模板,而对象则把类实例化,然后交给类来处理
什么是对象?
对象就是数据,对象本身没有方法,但是对象有一个"指针",这个指针指向一个类,这个类可以有方法和属性
什么是方法?
方法描述不不同属性所导致的不同表现
类和对象的关系是什么?
类和对象是不可分割的,有对象比定有一个类和其对应,否则这个对象也就成了没有亲人的孩子,(如果由标量进行强制转换的object,没有一个类和他对应,php有一个stdClass会被这个强制转换的对象所指向)
如何访问静态方法?
php对象访问类中的静态属性的时候 使用::符号 如果使用::访问非静态属性的时候会导致E_STRICT级别的错误,在php.ini配置报错等级调到最高的时候会看到错误 提示 error_reportion = E_ALL|E_STRICT
display_errors = On
php多态是什么?
多态是指同一类对象在运行时的具体化
php语言是弱类型语言,实现多态更简单.更灵活,php自身就是多态,在语言级别上不能说没有多态
php中父类和子类看做 继父和继子的关系,他们存在继承关系,但不是血缘关系,因此子类无法向上转型为父类,从而失去多态最典型的特征
继承的缺点是什么?
继承破坏封装性
继承是紧耦合的
继承扩展复杂
顺便说说继承的特点
子类可以访问父类的公开和保护属性,反之,访问私有则不可以。
子类最多只能继承一个父类,而父类可以有多个子类。
子类不会继承父类的析构函数;
如果要在子类里面使用父类的方法,可以用父类名::父类方法来表示或者用parent::父类方法来表示
方法和属性在一定程度上为了理解可以是看做等效的。
面向接口编程(接口为抽象而生),(大多数设计模式是围绕着接口展开的)
如果一个类声明了实现 的接口 如果你实现某个接口中的某一个方法,那么必须实现其他用不到的方法,就会造成代码冗余
接口可以多继承
接口是一种规范和契约,作为规范 接口应该保证可使用性,作为契约,接口应该保证可控性
接口只是一个声明,一旦使用interface关键字,就应该实现它. 可以由外部实现(程序猿实现),也可以由内部实现(内部接口),接口本身什么都不做,但是他可以告诉我们他可以做什么
php接口缺点
没有契约限制
缺少足够多的内部接口(不明白)
反射
反射是指在php运行状态中,扩展分析PHP程序,导出或者提取出关于类 方法 属性 参数等的详情信息 ,包括注释.这种动态获取信息以及动态调用对象的功能称作为反射API
反射可以获取类的名字 类的属性和成员 类的访问权限
在MVC和插件开发中,反射的使用非常常见,反射的消比较大.
反射会破坏封装的性.可以暴露出方法或者属性