PHP面向对象的三大特征:封装、继承、多态

封装
封装事把对象中的成员属性和成员方法,加上访问修饰符,使其尽可能隐藏对象的内部细节,以达到对成员的访问控制(是访问的控制,而不是拒绝访问)
3种访问修饰符
public(公有的 默认)
private(私有的)
protected(受保护的)
只要在声明成员属性或成员方法的时候,使用private关键字修饰,就实现了对成员的私有封装,封装后的成员在外部是不能直接访问的,只能在对象的内部方法中使用$this来访问
魔术方法
__set() 代替通用的set赋值方法。在直接设置私有属性时调用(该方法需要两个参数)
__get() 代替通用的get赋值方法。在直接访问私有成员属性的时候自动调用(该方法需要一个参数)
__isset()是在使用isset()方法判断一个私有属性是否存在时自动调用__isset()魔术方法(参数是属性名称)
__unset()是在使用unset()方法,删除一个私有属性的时候,自动调用__unset()魔术方法(参数是属性名称)
这四个魔术方法只对类中的私有后者是受保护的成员属性有效
魔术方法前的修饰词可以是公有的、私有的、不影响调用。
继承
1.把两个类或者多个类中的相同部分可以提出来–>父类(基类)子类(派生类)
2.对于php来说是单继承的
只能继承一个父类,但是一个父类可以有多个子类
1.子类使用extends继承父类,子类可以将父类中的所有内容都继承过来
2.private 是私有的,只能自己用,别人不能用.包括子类也不能用
3.protected 受保护的权限,只能是自己和自己的子类可以使用,不能在除了自己和子类的外边使用
4,public 是公开的权限,所有都可以使用,自己、子类、类外都可以使用
在这里插入图片描述
多态
继承中的重写(覆盖)—在子类中可以写和父类同名的方法
在子类中定义的与父类中同名的属性是对父类属性的重写(覆盖)
在子类中定义的与父类中同名的方法是对父类方法的重写(覆盖)

在子类中访问父类的方法
类名::成员
Parent::成员 (使用parent::访问父类中被覆盖的方法)
重要:只要是子类的构造方法,去覆盖父类的构造方法,一定要在子类构造方法的最上边调用一下父类被覆盖的构造方法。重写(覆盖)的时候权限问题:子类只能大于或者等于父亲的权限,不能变小私有的不能覆盖,二十完全当作自己全新的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值