批改状态:合格
老师批语:除了写对, 还要记住使用场景
1、代码练习
<?phpclass A{//类通过protected和private关键字来封装public $name='ldy';protected $sex='男';protected $age=28;public static $course='PHP中文网';public function getName(){return __CLASS__.'=>'.__METHOD__;}protected function getClass(){return __CLASS__.':'.$this->getcountvar().'个属性';}private function getcountvar(){return count(get_class_vars(__CLASS__));}}// 继承/扩展class B extends A{public static $work='销售';// 修改父类中的访问权限遵循:子类的访问权限必须大于等于父类;public≥protected≥private// 重写public function getClass(){return parent::getClass().';'.static::$work;}// 多态public static function get(){return '调用静态函数'.__METHOD__;}}echo B::$course.B::$work,'<br>';echo B::get(),'<br>';$b=new B();echo $b->getName(),'<br>';echo $b->getClass(),'<br>';echo '<hr>';//抽象类abstract class C{//类通过protected和private关键字来封装public $name='ldy';protected $sex='男';protected $age=28;public static $course='PHP中文网';public function getName(){return __CLASS__.'=>'.__METHOD__;}abstract protected function getClass();abstract protected function getcountvar();}// 继承/扩展class D extends C{public static $work='销售';// 修改父类中的访问权限遵循:子类的访问权限必须大于等于父类;public≥protected≥private// 重写// 多态public static function get(){return '调用静态函数'.__METHOD__;}function getClass(){return __CLASS__.':'.$this->getcountvar().'个属性'.static::$work;}function getcountvar(){// 父类中的私有变量在继承中是无法直接继承的return count(get_class_vars(__CLASS__));//返回私有变量不参与计算}}$b=new D();echo $b->getName(),'<br>';echo $b->getClass(),'<br>';// echo $b->getcountvar(),'<br>';echo '<hr>';//接口类interface F{const CITY='郑州';public static function get();}class G implements F{private $word='测试';public static function get(){return '我在'.F::CITY;//return '我在'.F::CITY.$this->word;静态方法无法直接调用类中的属性}// 访问私有变量public function getP(){return $this->word;}}echo F::CITY,'<br>';echo G::get(),"<br>";echo (new G)->getP();
2、演示结果
1、self: 引用当前, $this: 引用当前实例;例如:new self()和$this->var;A extends B{}:A类继承于B类;
2、global关键字声明访问外部变量;
3、static:静态方法不允许使用$this;只能访问静态成员: 静态属性, 静态方法;
4、static::$course与self::$scourse的区别是,self只认定义的类,static可以区分(父和子),作用于实列类执行
5、类中访问限制(封装):public|protected|private;同一个类中的方法可以访问类中所有的方法和属性
6、 二类成员: 子类有权访问的父类成员类型, public, protected
7、三种操作: 子类对父类的三种操作: 继承, 重写, 扩展
8、类的三个特性:
1. 继承: 父类的二类成员自动成为子类的成员2. 重写: 覆写与父类/基类同名的成员(属性, 方法)3. 扩展: 子类添加自身的方法来增加/扩展父类的功能
9、final:类不可继承,方法不可重写
10、abstract声明抽象类(与其他类对比可以有抽象方法);
11、interface:声明接口;implements:继承接口类;接口允许多继承
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号