PHP 面向对象 final类与final方法

Fatal error: Class SuperMath may not inherit from final class (Math) in E:PHPProjects est.php教程 on line 14

<?
//声明一个final类Math
class Math{
public static $pi = 3.14;
public function __toString(){
return "这是Math类。";
}
public final function max($a,$b){
return $a > $b ? $a : $b ;
}
}
//声明类SuperMath 继承自 Math类
class SuperMath extends Math {
public final function max($a,$b){}
}
//执行会出错,final方法不能被重写。

?>
<?
//声明一个final类Math
final class Math{
public static $pi = 3.14;

public function __toString(){
return "这是Math类。";
}
}
$math = new Math();
echo $math;

//声明类SuperMath 继承自 Math类
class SuperMath extends Math {
}
//执行会出错,final类不能被继承。

?>

Fatal error: Class SuperMath may not inherit from final class (Math) in E:PHPProjects est.php on line 16

时间: 2024-10-25 15:59:18

PHP 面向对象 final类与final方法的相关文章

PHP 面向对象 final类与final方法_php基础

final---用于类.方法前. final类---不可被继承. final方法---不可被覆盖. final类不能被继承. 如果我们不希望一个类被继承,我们使用final来修饰这个类.这个类将无法被继承.比如我们设定的Math类,涉及了我们要做的数学计算方法,这些算法也没有必要修改,也没有必要被继承,我们把它设置成final类型. 复制代码 代码如下: <? //声明一个final类Math final class Math{ public static $pi = 3.14; public

马士兵J2SE-第三章-面向对象-Object类:toString方法、equals方法、对象转型、抽象类抽象方法、final关键字、接口

toString方法 public class test { public static void main(String[] args) { Teacher t=new Teacher(); System.out.println("1 "+t+" 2 "+t.toString()); } } class Teacher { public String toString() { return "I am a teacher"; } } 输出: 1

Java面向对象编程中final关键字的使用方法详解_java

在Java中通过final关键字来声明对象具有不变性(immutable),这里的对象包括变量,方法,类,与C++中的const关键字效果类似. immutable指对象在创建之后,状态无法被改变 可以从三个角度考虑使用final关键字: 代码本身:不希望final描述的对象所表现的含义被改变 安全:final对象具有只读属性,是线程安全的 效率:无法修改final对象本身,对其引用的操作更为高效 final 变量定义final Object a,则a只能被初始化一次,一旦初始化,a的数据无法修

java的final类

如果说整个类都是final(在它的定义前冠以final关键字),就表明自己不希望从这个类继承,或者不允许其他任何人采取这种操作.换言之,出于这样或那样的原因,我们的类肯定不需要进行任何改变:或者出于安全方面的理由,我们不希望进行子类化(子类处理). 除此以外,我们或许还考虑到执行效率的问题,并想确保涉及这个类各对象的所有行动都要尽可能地有效.如下所示:   //: Jurassic.java // Making an entire class final class SmallBrain {}

Javascript基础与面向对象基础~第五讲 Javascript中的方法,类中的方法

上一文章主要说的是JS中的类,有很多朋友回复了我的文章,在此很感谢大家,也对一些朋友提出的问题进行了回复,"类"这东西,只是一种思想,我们不应该把重点放在"某种语言是否提供类,或者是否实现了类",这是不重要的,重要的是面向对象中的类的思想! 今天主要说的是方法,JS中的方法也叫做函数function,它将一些有关系的代码组织在一起,形成一个整体,这类似于面向对象中的封装,你不需要了解方法的实现细节,你只要去调用它,了解方法的签名即可. 最简单的函数(方法): <

面向对象-c#负数类的display方法具体是?

问题描述 c#负数类的display方法具体是? c#负数类的display方法具体是?是返回一个复数类么?返回一个字符串?复数形式的?怎么用呢? 解决方案 系统类库没有复数类,你需要自己定义.怎么返回是你的事情. 你可以参考:https://msdn.microsoft.com/zh-cn/library/6fbs5e2h 解决方案二: 这里重载了ToString(),至于怎么显示,是你调用者的事情. 解决方案三: 谢谢,,,,,,..

面向对象编程-c#负数类的display方法具体是?

问题描述 c#负数类的display方法具体是? c#负数类的display方法具体是?是返回一个复数类么?返回一个字符串?复数形式的?怎么用呢?

JS类定义原型方法的两种实现的区别评论很多_js面向对象

我们知道,给JavaScript类添加原形(prototype)方法是很简单的.而且常用的有下面这两种方法,可是这两种方法在使用时有区别吗?     JScript Class:  复制代码 代码如下:  function JSClass()   {        }      Extends prototype method:  复制代码 代码如下:  JSClass.prototype.MethodA = function()   {   };      Or   复制代码 代码如下: fu

java中看到类写在方法里面的类是什类啊

问题描述 java中看到类写在方法里面的类是什类啊 java中看到类写在方法里面的类是什类啊 void func (){class lei } 解决方案 方法内部的内部类的可见性更小,它只在方法内部可见,在外部类(及外部类的其它方法中)中都不可见了.同时,它有一个特点,就是方法内的内部类连本方法的成员变量都不可访问,它只能访问本方法的final型成员.同时另一个需引起注意的是方法内部定义成员,只允许final修饰或不加修饰符,其它像static等均不可用. 解决方案二: 内部类(匿名内部类) 解