继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【九月打卡】第20天--PHP面向对象编程第四章节面向对象的高级实践

万万的小刀
关注TA
已关注
手记 21
粉丝 1
获赞 1

课程名称:PHP面向对象编程

课程章节:
4-4 Final关键字-php面向对象编程
4-5 数据访问-php面向对象编程
课程链接

主讲老师:Peter

课程内容

学习到了PHP类中final、parent、self、static几个关键字的作用

课程收获

一、Final关键字

被声明为 Final:

1.类,不能被继承。
2.方法,不能被子类覆盖。
3.属性,常量,不能被定义为 Final
// 子类中编写跟父类方法名完全一致的方法可以完成对父类方法的重写(overwrite)
// 对于不想被任何类继承的类可以在class之前添加final关键字
// 对于不想被子类重写(修改)的方法。可以在方法定义的前面加final关键字

class BaseClass 
{
    public function test()
    {
        echo "BaseClass::test called\n";
    }

    // 添加final关键字能够让这个方法不能在子类中重写
    final public function test1()
    {
        echo "BaseClass::test1 called\n";
    }
}

class ChildClass extends BaseClass
{
    public function test($tmp = null)
    {
        echo "ChildClass::test called" . $tmp . "\n";
    }
}

$obj = new ChildClass();
$obj->test("TMP");

二、数据访问

1、用parent关键字可以用于调用父类中被子类重写了的方法

2、self关键字可以用来访问类自身的成员方法。也可以用于访问自身的静态成员和类常量;不能用于访问类自身的属性;使用常量的时候不需要再常量名称前面添加$符号

3、static关键字用于访问类自身定义的静态成员,访问静态属性时需要在属性前面添加$符合

class BaseClass 
{
    public function test()
    {
        echo "BaseClass::test called\n";
    }

    public function test1()
    {
        echo "BaseClass::test1 called\n";
    }
}

class ChildClass extends BaseClass
{
    const CONST_VALUE = 'A constant value';
    private static $sValue = 'static value';
    public function test($tmp = null)
    {
        echo "ChildClass::test called" . $tmp . "\n";
        parent::test(); 
        self::called();
        echo self::CONST_VALUE."\n";
        echo static::$sValue . "\n";
    }

    public function called()
    {
        echo "ChildClass::test called\n";
    }
}

$obj = new ChildClass();
$obj->test();

课程截图

图片描述
图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP