总结一下php面向对象中出现的相关概念,顺便温故一下面向对象

相信很多从事php开发工作的人员中,有不少在面试的时候都被问到过面向对象中的一些概念的理解。本人也不是什么大牛,只是在不断学习的过程中,总结一下常碰到的问题分享给大家。

1. 类的定义:使用class关键字加上类名定义。类可以用来实例化对象,实例化对象用关键字new加类名

2. 类中的成员:类中成员包括属性,方法,和类常量(类常量使用const定义,它的值必须是一个定值,不能是一个变量)

3. 既然类中有成员,那么我们就可以对成员进行访问,这就有了访问控制符public,protected,private。下面就来说说这三个关键字:

    (1) public: 顾名思义公有,在属性或方法前面使用public限制的话,说明该成员可以在任何地方被访问。

    (2) protected: 受保护,在属性或方法前面使用protected修饰的话,说明改成员可以被自身以及其子类和父类访问,即在继           承链内都可以被访问。

    (3) private:私有, 私有成员只能被其定义所在的类访问。

    类中的成员方法有两个比较特殊的:构造函数和析构函数。

    构造函数:__construct(). 主要是用来在创建对象时,对对象进行初始化,给属性赋初始值。通常在类被实例化的时候被调用

    析构函数:__destruct(). 当对象被销毁的时候被调用。

4. 用来修饰属性和方法的关键字还有一个static(静态),当属性或方法前使用static后,就说该成员为静态成员。静态成员的访问比较特殊,静态属性和静态方法都可以通过类来直接访问,静态方法也可以通过类实例化过来的对象访问,但是静态属性不可以

5. 接口:接口中定义的方法不需要定义方法的内容,当类实现该接口时,该类必须实现接口中的所有方法,否则会报错。一个类可以实现多个接口,但是只能继承一个类。类实现接口使用implements关键字。

6. 对比抽象类(关键字abstract)和最终类(关键字final)。抽象类与最终类的最大区别是抽象类不能被实例化,只能被继承;最终类不能被继承,只能被实例化

    抽象类:如果一个类里面至少有一个方法被声明为抽象方法,那么这个类必须被声明为抽象类。抽象方法不能定义具体的功能,只能是一个方法名。当继承一个抽象类的时候,子类中必须定义父类中的所有抽象方法,并且这些方法的访问控制必须和父类中的一样或者更为宽松。

    最终类:如果一个类被声明为final,则该类不能被继承,如果父类中方法被声明为final,则子类无法重写该方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值