为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
PHP

课程名称: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();

课程截图

图片描述
图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消