继承时的关键词:
这些关键词成员属性 成员方法都是同理 在不知道情况的成员属性用var ,成员方法不使用关键词, 知道的情况自己选择用。
注意:1.成员方法不加任何关键词为public状态
2.var相当于public关键词来修饰属性,但是不能在成员方法前面加。
private 私有的
在自己的类中可以访问,在子类中不可以访问,在类的外部不可以访问,成员方法,成员属性均遵守该规定。
protected 受保护的
当前类可以访问,子类可以访问使用,但是类的外部不能访问和使用.例如:钱 孩子 可以花 自己可以花 别人就不可以花。
public 公共的
当前类可以访问,子类可以访问,类的外部也可以访问。
Final
以final关键词开头的类,不能被继承。
以final关键词开头的成员方法 不能被重载
第一个private关键词(私有)例子
- <?php
- //人类
- class ren {
- var $name,$sex,$age;
- //重点 私有的成员属性
- private $moy=100;
- function __construct($name,$sex,$age){
- $this->name=$name;
- $this->sex=$sex;
- $this->age=$age;
- }
- //创建一个成员方法 调用私有的成员属性。
- function moys(){
- echo $this->moys;
- }
- function say(){
- echo '我叫'.$this->name.'我的年龄是'.$this->sex.'我的年龄是'.$this->age.'<br/>';
- }
- }
- //学生类继承人类
- class student extends ren {
- var $school;
- function __construct($name,$sex,$age,$school){
- //用parent关键词来替代类名直接书写
- //调用父类的构造方法,让了不让代码臃肿,减少重覆的代码
- parent::__construct($name,$sex,$age);
- $this->school=$school;
- }
- function study(){
- echo "我叫".$this->name.'我在'.$this->school.'学习';
- }
- }
- $p = new student ('0x007','男',19,'北京');
- //直接调用父类方法 因为子类继承了父类 所有的方法跟属性全部继承过来了。
- //报错了 原因?? 因为成员属性了加了private关键词 此关键词只能在本类中使用,不能在子类跟类的外部调用。
- $p -> moys();
- ?>
protected关键词(受保护)例子
- <?php
- //人类
- class ren {
- var $name,$sex,$age;
- //重点 受保护的成员属性
- protected $Money=100;
- function __construct($name,$sex,$age){
- $this->name=$name;
- $this->sex=$sex;
- $this->age=$age;
- }
- function say(){
- echo '我叫'.$this->name.'我的年龄是'.$this->sex.'我的年龄是'.$this->age.'<br/>';
- }
- }
- //学生类继承人类 成员属性跟方法全部继承
- class student extends ren {
- var $school;
- function __construct($name,$sex,$age,$school){
- //用parent关键词来替代类名直接书写
- //调用父类的构造方法,让了不让代码臃肿,减少重覆的代码
- parent::__construct($name,$sex,$age);
- $this->school=$school;
- }
- function study(){
- echo "我叫".$this->name.'我在'.$this->school.'学习';
- echo "测试 protected关键词子类可以使用. 但是在类的外部不能使用------".'我的金钱是:'.$this->Money;
- }
- }
- $p = new student ('0x007','男',19,'北京');
- //调用study方法 查询子类到底可以使用 加了pritected关键词成员属性不 事实证明可以
- $p -> study();
- //报错 不能访问收保护的属性
- echo $p->money;
- //访问成员属性sex 不报错 因为sex成员属性不受保护 使用的是var
- echo $p->sex;
plblic 关键词(共有的) 实例;
注意:一般使用var声明的成员属性,和成员方法不加任何属性的 就是公用的
- class ren {
- public $name,$sex,$age;
- function __construct($name,$sex,$age){
- $this->name=$name;
- $this->sex=$sex;
- $this->age=$age;
- }
- function say(){
- echo '我叫'.$this->name.'我的年龄是'.$this->sex.'我的年龄是'.$this->age.'<br/>';
- }
- }
- //学生类继承人类 成员属性跟方法全部继承
- class student extends ren {
- var $school;
- function __construct($name,$sex,$age,$school){
- //用parent关键词来替代类名直接书写
- //调用父类的构造方法,让了不让代码臃肿,减少重覆的代码
- parent::__construct($name,$sex,$age);
- $this->school=$school;
- }
- function study(){
- echo "我叫".$this->name.'我在'.$this->school.'学习'.'</br>';
- }
- }
- $p = new student ('0x007','男',19,'北京');
- //调用study方法 查询子类到底可以使用 加了pritected关键词成员属性不 事实证明可以
- $p -> study();
- //访问成员属性sex 不报错 因为使用的是public关键词
- echo $p->sex;