php类 对象 继承,PHP的类和对象(四)访问控制和继承

本文探讨了Java中访问控制的三种修饰符:public、protected和private,以及它们如何影响类成员的可见性。讲解了访问控制在对象实例化、继承和设计模式(如单例模式)中的应用,同时提到了final关键字的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

拜访控制

对属性或方法的拜访控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的.被定义为公有的类成员可以在任何地方被拜访.被定义为受保护的类成员则可以被其自身以及其子类和父类拜访.被定义为私有的类成员则只能被其定义所在的类拜访.

3f9b8e2e166763c89bd57b2b650e7491.png

默认为Public,var也是Public.

02c894a5cda2e41e378eb2354a1fcb41.png

ee0e48dee5b9705ca383c661daea0ebd.png

拜访同一个对象类型的私有成员

2e16546e981192b09dca98b34a05ab3e.png

如果构造函数定义成了私有办法,就不能直接实例化对象了,这时候一般通过静态办法进行实例化,在设计模式中会经常使用这样的办法来控制对象的创建,比如单例模式只允许有一个全局唯一的对象.

a0243736cc45e14fd0932a2747f64991.png

对象承继

通过extends来继承,子类就会继承父类所有公有的和受保护的办法.除非子类覆盖了父类的办法,被继承的办法都会保留其原有功能.

f033130acb00eb8378c64f40a05f1c82.png

如果父类中的办法被声明为 final,则子类无法覆盖该办法.同样如果一个类被声明为 final,则不能被继承. 需要注意的是: 属性不能被定义为 final,只有类和办法才能被定义为 final.

如果新的类中没有本身的构造函数,那么子类会自动调用父类的构函数.

子类可以使用parent::办法()或者$this->办法()(不建议使用)来调用父类的函数.

如果一个子类中的办法与父类同名,那么 parent::办法() 调用的是父类的办法,而 $this->办法() 调用的是子类的办法.

属性无法区分父类和子类,可以使用$this->属性(没有$)挪用,子类同名属性会覆盖父类的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值