当前位置: 移动技术网 > IT编程>软件设计>面向对象 > 2019-07-23 类的继承和final关键字的应用

2019-07-23 类的继承和final关键字的应用

2019年07月23日  | 移动技术网IT编程  | 我要评论

我们称以存在的用来派生新类的类为基类,又称做父类,超类。由已存在的类派生出的新类称为派生类,又称为子类。从一个基类派生的继承称单继承,从多个基类派生的继承称为多继承。也就是说:一个类只能直接从一个类中继承数据

那么,怎样实现继承呢?很简单,我们只需要照创建类的方法后跟一个单词extends 父类名即可。比如此刻我们已经有了一个父类,代码如下:

class preson{
    function say()
    {
        echo  "1";
    }
}

此时我们想继承这个类,怎么办呢?看下代码:

class student extends preson{
    function sing()
    {
        $this->say();
    }
}

可以看到我们并没有在student这个类中并没有写say方法,但在sing方法中去调用了say方法,此刻我们去实例化student这个类后,再去调用sing方法,可以输出1。证明继承成功。

$obj = new student();
$obj->sing();

 

 

final关键字

 

这个关键字只能用来定义和定义方法 不能使用final这个关键字来定义成员属性,因为final是常量的意思,我们在php里定义常量使用的是define()函数,所以不能使用final来定义成员属性。

使用final关键标记的方法不能被子类覆盖,是最终版本;

如果还是上面的例子,我们在类前面加一个关键字final会怎么样呢?

<?php
//创建一个父类
final class preson{
    function say()
    {
        echo  "1";
    }
}

class student extends preson{
    function sing()
    {
        $this->say();
    }
}

$obj = new student();
$obj->sing();
?>

显示结果会报错:fatal error: class student may not inherit from final class (preson) 。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网