• php--最终类final


    思考:继承是利用了一些共性以及共性大小来拆分的父类和子类,父类的目的是为了给子类提供一些共性代码,子类可以从父类继承,而且还可以有子类无限继承子类,

    继承的目的一是利用父类提供的公共代码,二是实现自身需求的扩展,如果子类无线被继承会有什么后果呢?

    引入:事务的划分首先不可能无限细化,因此肯定是不需要无线的出现子类的,一旦无线出现子类,那么就会导致代码的执行效率大大降低,而且可能被某些无关类

    继承从而出现安全问题,但是从代码设计的角度来讲是无法显示开发者的,因此php提供了一种终结机制,让类无法被继承

    最终类final【掌握】

    定义:最终类,使用final关键字修饰类名,表示此类不可以继承。

    1.基础语法 final class posen{}

    <?php
    
    final class posen{
    
    
    }
    
    ?>

    2.最终类无法被继承  运行提示错误

    <?php
    
    final class posen{
    public $name=332;
    
    }
    
    class man extends posen{      //运行后 致命的错误,无法从final类继承
    
    }
    
    ?>

    3.final关键字不知修饰类表示类不可被继承,还能修饰方法,表示方法不能不被重写

    <?php
     class posen{
    public $name=332;
    public final function show(){   //最终方法
       echo __CLASS__;
    }
    }
    
    class man extends posen{      //运行后 致命的错误,无法从final类继承
    
       public function show(){
          echo "我能重写这个方法吗?";
       }
    }
    
    $s=new man();
    $s->show();    //错误不能重写final的方法  致命的错误
    
    ?>

    总结:

      final关键字修饰的类表示无法被继承

      final关键字还可以修饰方法,表示方法不能被子类重写(通常类不会使用final关键字)

      fnal修饰类包实不希望类在出现子类,可以很好保护类的内部结构不被暴露

      final修饰方法表示不希望方法被修改,可以在一个更高的维度来保证同类事务的共同表现

  • 相关阅读:
    C#异常断电后重新启动项目出现配置未初始化错误
    TFS: 解决The build agent error
    删除TFS中的项目
    将现有项目添加到TFS中
    Typora开启行内公式
    Markdown上下标内容多于一项
    小甲鱼python基础教程飞机大战源码及素材
    Git 将本地库添加到远程仓库
    C# float与UInt16互转
    C++的重载流输出运算符
  • 原文地址:https://www.cnblogs.com/xiaowie/p/12292260.html
Copyright © 2020-2023  润新知