首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP 中的 final 关键字

1. final 关键字 ---- 先来记重点:final 修饰的类不能被继承,final 修饰的方法不能被重写 PHP 从 5.x 版本开始新增了 final 关键字,它可以在类或类的方法前面使用...,但是不能用来修饰类的属性 final 的中文含义是:最终的、不可更改的,所以被 final 修饰的类称为 ”最终类“,被 final 修饰的方法称为 “最终方法” 2. final 使用示例 ----...错误演示:当继承被 final 修饰的类时,PHP 会直接抛出致命错误 final class A { } class B extends A { } # 致命错误:类 B 不能继承最终类 A Fatal...error: Class B may not inherit from final class (A) in /Users/liang/code/php/1.php on line 9 错误演示:当重写被...final 修饰的方法时,PHP 会直接抛出致命错误 class A { final public function liang() { echo 'vue';

64330

浅析Java中的final关键字

谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。...另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。...下面是本文的目录大纲:   一.final关键字的基本用法   二.深入理解final关键字   若有不正之处,请多多谅解并欢迎指正。...一.final关键字的基本用法   在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。下面就从这三个方面来了解一下final关键字的基本用法。   ...上面的一段代码中,对变量i和obj的重新赋值都报错了。 二.深入理解final关键字   在了解了final关键字的基本用法之后,这一节我们来看一下final关键字容易混淆的地方。

99870
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    细说Java中的关键字--final

    关键字系列旨在服务于入门阶段的读者,帮助读者理解代码中每个关键字的含义及用法,希望对读者有所帮助。 ? ?...读者的收获 1、final的作用 2、final的修饰范围 final的含义 final在关键字的分类里属于修饰符,它可以修饰类、变量、方法、方法参数,final直译成中文就是“最终”的意思...二、final方法 final修饰的方法不可被子类重写 //定义父类中的final方法 ? //子类试图重写父类方法,提示报错 ?...三、final变量 final修饰的变量=常量,final变量一旦赋值了就无法改变 ? 读者需要注意的是,对于引用类型数据,是指无法改变指向引用堆中的内存地址,而真实内容可以修改: ?...四、final方法参数 当方法中的参数被final修饰,该方法只能读取该参数而无法修改该参数 ?

    60230

    Java中的final关键字详解

    那么我们能不能随意的继承API中提供的类,改写其内容呢?显然这是不合适的。为了避免这种随意改写的情况,Java提供了final 关键字,用于修饰不可改变内容。 final: 不可改变。...final class Scanner 等,很多我们学习过的类,都是被final修饰的,目的就是供我们使用,而不让我们所以改变其内容。...注意: 如果一个类被final修饰那么这个类不能有任何的子类。 一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写(因为没子类。)...对于类、方法来说,abstract关键字和final关键字不能同时使用,因为矛盾。...有抽象方法的abstract类被继承时,其中的方法必须被子类Override,而final不能被Override。

    31320

    ​JMM中的final关键字解析

    读final域的重排序规则 读final域的重排序规则如下: 在一个线程中,初次读对象引用与初次读该对象包含的final域,JMM禁止处理器重排序这两个操作(注意,这个规则仅仅针对处理器)。...在这个示例程序中,如果该引用不为null,那么引用对象的final域一定已经被A线程初始化过了。...在构造函数返回后,任意线程都将保证能看到final域正确初始化之后的值。 final语义在处理器中的实现 现在我们以x86处理器为例,说明final语义在处理器中的具体实现。...也就是说在x86处理器中,final域的读/写不会插入任何内存屏障! JSR-133为什么要增强final的语义 在旧的Java内存模型中 ,最严重的一个缺陷就是线程可能看到final域的值会改变。...最常见的例子就是在旧的Java内存模型中,String的值可能会改变(参考文献2中有一个具体的例子,感兴趣的读者可以自行参考,这里就不赘述了)。

    62720

    Java中的this,final,static关键字

    1,this关键字:this关键字只能在方法内部使用,有三种使用方式      第一种,返回对当前对象的引用 public class Person { ..........关键字,可用来修饰域,方法,和类    第一种情况,final修饰类,表示最终类,不可以被继承,final类里的方法默认为final方法,不可以被覆写    第二种情况,final修饰方法,方法不能被覆写...,一旦初始化,数值保持不变            final修饰引用类型域,一旦初始化,则引用对象的地址不再发生变化,但是对象的内容可以改变 3,static关键字,可用来修饰域,方法,代码块和类...,不论该类创建了多少个对象,静态域只有一份,没有拷贝      第四种情况,static修饰方法,在static修饰的方法中只能调用静态域,静态方法中不能出现this,和super关键字,而且静态方法和静态域可以使用类名或者对象去调用...,而非静态的只能使用对象去调用 在代码中验证this,static,final,关键字 Person.java文件 public class Person { //展示了this的三种用法

    36020

    Java中final关键字(Java)

    关键字概述 final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写 可以用来修饰:类,方法,变量 修饰类 final class 类名 {//类体} 被final...修饰的类是最终类,没有后代,不能被继承 //最终类 public final class Person { ......... } 修饰变量 final int abc = 12; final int...MAX_ABC = 120; 被final修饰的变量是称为常量,不能被修改 java中被final修饰的变量命名的时最好将字母全都大写,单词和单词之间用_隔开 修饰方法 被final修饰的方法是最终方法...,不能被重写 修饰符(public/private/default/protected) final 返回值类型 方法名(){//方法体} public final void eat(){ System.out.println...("浏览CSDN上的文章"); }

    67130

    Java中的final关键字【详解】

    一、Java中的final关键字 1、final关键字 final的汉语意思是:最终的;决定性的;不可更改的;跟在Java中的功能一致; 2、final关键字修饰类 被final关键字修饰的类是最终类,...意思就是不能有子类; “太监类”、“断子绝孙类”,比如String类; 3、final关键字修饰方法 被final关键字修饰的方法是最终方法,子类可以继承使用,但不能修改; 4、final关键字修饰变量...被final关键字修饰的变量是常量,一旦赋值,不可被修改,而且必须在初始化对象的时候赋值; 成员变量:final修饰的成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误; 局部变量...:final修饰的局部变量必须声明时赋值,如果不赋值,虽然声明是不会出错,但调用时会编译出错; 方法参数:如果 final 关键字修饰方法参数时,方法中是不能改变该参数的; public void myTest...,用final修饰毫无意义; 6、final关键字的好处 使用final关键字可以提高性能。

    5600

    浅析Java中的final关键字

    谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。...另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。...下面是本文的目录大纲:   一.final关键字的基本用法   二.深入理解final关键字   若有不正之处,请多多谅解并欢迎指正。...一.final关键字的基本用法   在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。下面就从这三个方面来了解一下final关键字的基本用法。   ...上面的一段代码中,对变量i和obj的重新赋值都报错了。 二.深入理解final关键字   在了解了final关键字的基本用法之后,这一节我们来看一下final关键字容易混淆的地方。

    40510

    java中final关键字的作用

    参考链接: Java中final,finally和finalize final关键字可以用于三个地方。用于修饰类、类属性和类方法。       ...被final关键字修饰的类不能被继承,被final关键字修饰的类属性和类方法不能被覆盖(重写);       对于被final关键字修饰的类属性而言,子类就不能给他重新赋值了,如果重新赋值,会报错: ...下图所示,当我们直接给name赋值时,因为父类中的name属性被final修饰,所以eclipse会报错。...接下来是在类方法前加上final关键字的用法。...与类属性类似,父类方法如果用final关键字进行修饰,那么不能被覆盖,但要说明一点的是,不能被重写是指不能同时和和父类方法同名,同参数,换句话讲,只要子类中的方法与父类中的方法同名,同参数列表,即使返回值不同

    58400

    final关键字在PHP中的使用

    final关键字在PHP中的使用 final关键字的使用非常简单,在PHP中的最主要作用是定义不可重写的方法。什么叫不可重写的方法呢?就是子类继承后也不能重新再定义这个同名的方法。...() function testA(){ echo 'This is class childA', PHP_EOL; } } 而如果在类定义前加上这个关键字的话,则类也是不可继承的...B{ } 由此可见,final关键字就和他本身的意义一样,这个类或者方法是不可改变的。...答案当然是否定的,接口的意义本身就是定义一个契约让实现类来实现,如果定义了final关键字,那么接口的意义就不存在了,所以从语言层面来说接口以及接口中的方法就不能使用final关键字。...function testC(); } 在Java中,final还可以用来定义常量,但在PHP中,类常量是通过const来定义的。

    2.3K20

    final关键字

    (1)final类:不能被继承,没有子类,final类中的方法默认是final的; (2)final方法:不能被子类的方法覆盖,但可以被继承; (3)final成员变量:表示常量,只能被赋值一次,赋值后值不再改变...; } //这种声明f2的方法会报错,因为在Test1中已经将f2方法声明为final // public void f2() // { // System.out.println("父类的f2...父类的f4   由于父类中f2方法已经被声明为final,所以如果在子类Test2中重写f2方法的时候,会报错,这时候会提示将父类Test1中的f2方法声明为“非final”方法。...final变量定义的时候,可以先声明,而不给初值,这中变量也称为final空白,无论什么情况,编译器都确保空白final在使用之前必须被初始化。...但是,final空白在final关键字final的使用上提供了更大的灵活性,为此,一个类中的final数据成员就可以实现依对象而有所不同,却有保持其恒定不变的特征。

    855120

    深入理解Java中的final关键字

    Java中的final关键字非常重要,它可以应用于类、方法以及变量。这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?...最后也有一些使用final关键字的实例。final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的。 final关键字的含义?...final在Java中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。...凡是对成员变量或者本地变量(在方法中的或者代码块中的变量称为本地变量)声明为final的都叫作final变量。final变量经常和static关键字一起使用,作为常量。...9. final关键字容易与finalize()方法搞混,后者是在Object类中定义的方法,是在垃圾回收之前被JVM调用的方法。 10. 接口中声明的所有变量本身是final的。

    1.5K20

    final关键字

    final关键字代表最终,不可变的。 常见的四种方法 可以用来修饰一个类。 可以用来修饰一个方法。 3.还可以用来修饰一个局部变量。 还可以用来修饰一个成员变量。...二,final关键字用来修饰成员方法 1,当final关键字用来修饰一个方法的时候,这个方法就是最终方法,也就是不能被覆盖重写。...2,格式:final 返回值类型 方法名称(参数列表){ //方法体 } 3,注意事项:对于类来说,abstract关键字和final关键字不能同时使用,因为矛盾。...三,final关键字用与修饰局部变量: 1,一旦用final来修饰局部变量,那么这个变量就不能进行修改。“一次赋值,终生不变”。 2,对于基本类型来说,不可变说的是变量当中的数据不可改变。...对于引用类型来说,不可变说的是变量当中的地址值不可改变。 四,final关键字用来修饰成员变量: 1,对于成员变量来说,如果使用final关键字修饰,那么这个变量也照样是不可变的。

    24010

    Final 关键字

    final 关键字可以用来修饰变量、方法和类,修饰变量表示变量不能被修改,修饰方法表示方法不能被重写,修饰类表示类不能被继承。     由于以下两个原因,数据的恒定不变是很有用的。...3、空白Final Java强行要求我们对 final 进行赋值处理—— 要么在定义字段时使用一个表达 式,要么在每个构建器中。这样就可以确保 final 字段在使用前获得正确的初始化。...空白final在关键字final的使用上提供了更大的额灵活性。为此一个类中的final成员就可以实现依对象而有所不同,却又保持其恒定不变的特性。...Java允许你以在参数列表中以声明的方式将参数指明为final。这意味着你无法在方法中更改参数引用所指向的对象。     大多数情况下,设置final方法并不会对我们程序的整体性能产生什么改观。...5、修饰类 如果说整个类都是 final(在它的定义前冠以 final 关键字),就表明自己不希望从这个类继承,或者不允许其他任何人采取这种操作。

    80760

    Java中static、final关键字【详解】

    一、static关键字static是静态的意思,可用来修饰 成员方法、成员变量。...不能直接访问实例成员 实例方法可以访问静态成员,也可以访问实例成员 静态方法中是不可以出现this关键字的。...this指当前对象,静态方法中不用声明实例对象在java中,程序执行时 类的字节码文件会被加载到内存中,如果类没有创建对象 类的成员变量则不会分配到内存;但对于被static修饰的静态变量/方法,堆中有一个专属的静态变量区...Java提供了final关键字,表示修饰的内容不可变。final:最终的、不可改变的。可用于修饰类、方法、变量。...格式如下:修饰符 final 返回值类型 方法名(参数列表){ //方法体}注意:对于类、方法来说,abstract关键字和final关键字不能同时使用。

    33900

    final关键字

    LOAN = "loan"; LOAN = new String("loan") //invalid compilation error 定义时 初始化块中,但不可在静态初始化块中,静态的final实例变量才可以在静态初始化块中...4 final关键字的好处 提高性能 JVM和Java应用都会缓存final变量。 final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。...使用final关键字,JVM会对方法、变量及类进行优化。 5 不可变类 创建不可变类要使用final关键字。不可变类是指它的对象一旦被创建了就不能被更改了。String是不可变类的代表。...6其他重要知识点 不能够对final变量再赋值 本地变量必须在声明时赋值 在匿名类中所有变量都必须final final关键字不同于finally关键字,后者用于异常处理 final关键字容易与...finalize()方法搞混,后者是在Object类中定义的方法,是在垃圾回收之前被JVM调用的方法 接口中声明的所有变量本身是final final和abstract这两个关键字反相关,final

    33830

    final 关键字的用法

    在 Java 中,final 关键字具有多种用途,主要用于限制变量、方法和类的可修改性。了解这些用法有助于提高代码的安全性和可维护性。 1....方法不能被重写 在方法前加上 final 关键字,可以防止该方法在子类中被重写。这在设计类时,可以确保某些方法的行为不被改变。...类不能被继承 将 final 关键字用于类声明,表示该类不能被继承。这通常用于确保类的实现不被改变,常见于设计单例模式。...final 关键字在 Java 中具有重要的作用,可以用来声明常量、限制方法重写、防止类继承、管理引用的不可变性,以及优化性能。...合理使用 final 可以提高代码的安全性、可读性和设计的清晰性,帮助开发者维护代码的稳定性。此外,final 相关的特性和重排序规则也是许多面试中的热门话题,掌握这些内容有助于在面试中取得好成绩。

    11210

    深入理解 Java 中的 final 关键字

    final 是Java 中重要关键字之一,可以应用于类、方法以及变量上。这篇文章中将讲解什么是 final 关键字?将变量、方法和类声明为 final 代表了什么?使用 final 的好处是什么?...final 关键字是什么? final 在 Java 中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。...final 变量 凡是对成员变量或者本地变量(在方法中的或者代码块中的变量称为本地变量)声明为 final 的都叫作 final 变量。final 变量经常和 static 关键字一起使用,作为常量。...,而不需要额外的同步开销 总结 final 关键字可以用于成员变量、本地变量、方法以及类 final 成员变量必须在声明的时候初始化或者在构造器中初始化,否则就汇报编译错误 不能够对 final 变量再次赋值...这两个关键字是反相关的,final 类就不可能是 abstract 的 没有在声明时初始化 final 变量的称为空白 final 变量(blank final variable),它们必须在构造器中初始化

    47030
    领券