首页  >  文章  >  后端开发  >  PHP 期末班

PHP 期末班

WBOY
WBOY原创
2024-08-29 13:06:03929浏览

PHP Final 类是一个防止仅通过定义的 Final 前缀覆盖子类的方法的类。这意味着如果我们定义一个带有final前缀的方法,那么它将防止重写该方法。通常,PHP OOP 概念的继承将允许类层次结构内的巨大灵活性。您可以创建一个或多个用于扩展基类功能的子类,但 PHP 的 OOP 概念提供了一种创建不可扩展类的方法。这样的课程被称为 Final Class/Final Classes。

广告 该类别中的热门课程 PHP 开发人员 - 专业化 | 8 门课程系列 | 3次模拟测试

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

语法:

final class Pavan{ }
final public function set_bike(){}

PHP 最终课程如何运作?

PHP Final Class 基于声明工作,只需在类词前添加 FINAL 关键字即可。 Final Class 无需延长课程即可进行。子类不能重写final方法。普通类变量不能用于声明为final。 PHP Final 类或方法不能像其他普通类一样进行扩展。如果使用任何其他普通类扩展 Final 类,则 Final 类将导致 PHP 在浏览器输出中返回 FATAL ERROR。最终方法也是如此。

PHP 期末课示例

以下是下面给出的示例:

示例#1

这里使用类之前的final关键字创建了一个类。最后一个类别“Automobile1”无法扩展。在最终类内部,创建最终方法/函数。然后使用方法/函数创建普通类“Bmwcar1”,然后在段落标签内创建最终方法/函数。然后创建一个类“Tata1”来扩展“Bmwcar1”,该类具有正常的函数/方法“display()”,但在 Tata1 类中未创建价格()方法,因为调用它会因为 Final 关键字而提供致命错误。它是不可扩展的。然后创建/创建“$bmwcar1”对象。调用display()方法和final方法的price()是从“Bmwcar1”和“tata1”类完成的。

代码:

<?php
final   class   Automobile1{
final    public  function   set_color1(){   }
final    public  function   show1(){  }
}
class  Bmwcar1{
public  function   display1(){ echo "This is the bmwcar1 class \n";}
final public function  price1(){echo "This is the bmwcar1 class's final price method \n";}
}
class  Tata1   extends   Bmwcar1{
public   function  display1(){   echo  "This is tata1 class \n";}
}
$bmwcar1  =  new  Bmwcar1();
$tata1 =   new  Tata1();
$bmwcar1->display1();
$bmwcar1->price1();
$tata1->display1();
$tata1->price1();
?>

输出:

PHP 期末班

示例#2

这里使用 FINAL 关键字创建“A1”类。然后使用两个变量创建普通函数“show1()”。其中变量的总和将存储在 $sum1 变量中。然后 echo 函数用于打印变量值总和。然后创建“B1”类来扩展“A1”类。在“B1”类中,变量的乘法完成并保存在 $multi1 变量中。使用回显功能打印乘法结果,但在这里我们用普通类“B1”扩展最终类“A1​​”。在这里我们扩展了 FINAL 类/方法。它返回致命错误,因为我们扩展了 FINAL 类。

代码:

<?php
final Class A1
{
function show1($x1,$y1)
{
$sum1=$x1+$y1;
echo "Sum of the given no.s = ".$sum1;
}
}
class B1 extends A1
{
function show($x1,$y1)
{
$multi1=$x1*$y1;
echo "The Multiplication of the given no.s = ".$multi1;
}
}
$obj1= new B1();
$obj1->show1(1001,1001);
?>

输出:

PHP 期末班

示例#3

这里创建了一个带有函数 e($xx1) 的普通类“C1”,然后创建了一个类“D1”来扩展类“C1”以使用“C1”参数。因此,类“D1”将继承“C1”类属性,并且还将包含“D1”类属性。到目前为止,一切都是正确的。然后创建一个类“A1”,其中包含最终函数/方法,其中包含“x1”、“y1”变量,用于计算变量之和。创建“B1”类后,将扩展“A1”类。但最终的类、方法是不可扩展的。如果尝试,将会发生致命错误。

代码:

<?php
class C1
{
function e($xx1){
echo 'The value of xx1 variable value'.$xx1;
}
}
class D1 extends C1
{
function e($xx1){
$f=2*$xx1;
echo 'The double value of f (xx1)'.$f;
}
}
class A1
{
final function show($x1,$y1)
{
$sum1=$x1+$y1;
echo "Sum of given no=".$sum1;
}
}
class B1 extends A1
{
function show($x1,$y1)
{
$mult1=$x1*$y1;
echo "Multiplication of given no=".$mult1;
}
}
$obj=new D1();
$obj->e(13);
$obj= new B1();
$obj->show(100,100);
?>

输出:

PHP 期末班

示例#4

在下面的示例中,首先创建一个普通类,然后在其中使用两个变量创建一个最终方法,以计算两个变量值的总和,然后在其中创建一个新方法/函数普通类将两个变量值相乘并返回结果。这里只创建和调用最终方法,甚至没有扩展,因此不会出现错误。将打印变量的总和以及变量的乘法。

代码:

<?php
class BaseClassone{
final function calculateone($val11,$val12){
$sum1 = $val11+$val12;
echo "Sum of the given nums = ".$sum1;
}
function showone($x1,$y1){
$multip1=$x1*$y1;
echo "Multiplication of the given nums = ".$multip1."\n";
}
}
$obj= new BaseClassone();
$obj->showone(12,12);
$obj->calculateone(10,10);
?>

输出:

PHP 期末班

优点

PHP Final Class 概念是独特的,并且像普通类一样不可扩展。就像 Final 类一样,Final 方法也不能以独特的方式扩展。 PHP Final Class 概念将防止大量继承功能并鼓励组合。 Final Class 的所有公共 API 都是接口的一部分。它有助于封装。最终的类/方法将防止该类/方法覆盖子类/方法。 PHP 最终类将防止利用。尽管最终类无法扩展,但这些最终类在某些条件下是可以扩展的。这就像 Final 类可以成为或可以成为子类,但不能成为超类。

PHP Final 关键字甚至可以放置在访问说明符之前或之后。 PHP 最终方法也不应该有特定的返回类型和方法名称。

以上是PHP 期末班的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn