Hướng dẫn what is the meaning of a final method and a final class in php? - ý nghĩa của phương thức cuối cùng và lớp cuối cùng trong php là gì?


Từ khóa cuối cùng được giới thiệu bởi PHP5 liên quan đến khái niệm lập trình hướng đối tượng.

Nhưng trước khi chúng ta chuyển sang trận chung kết, chúng ta cần đảm bảo rằng chúng ta có một sự hiểu biết tốt về khái niệm thừa kế. Trong kế thừa, chúng ta có thể thừa hưởng một lớp từ một lớp khác. Ngoài ra, chúng ta có thể ghi đè một hàm trong một lớp kế thừa, để thay thế hành vi ban đầu được cung cấp. Trong một số trường hợp, chúng ta có thể cần giữ một lớp không được kế thừa hoặc chúng ta có thể cần phải ngăn chặn một chức năng bị ghi đè. Điều này có thể đạt được với lần cuối cùng, bằng cách tiền tố lớp và chức năng với từ khóa cuối cùng. Về cơ bản khiến PHP tạo ra một lỗi trong trường hợp mọi người cố gắng mở rộng một lớp cuối cùng hoặc ghi đè chức năng cuối cùng.

Note:

Chúng ta chỉ có thể sử dụng từ khóa cuối cùng với các phương thức và lớp.

Hãy trình bày khái niệm với sự trợ giúp của các ví dụ dưới đây.

Example:

Chúng tôi không thể ghi đè chức năng lớp cha.

<?php
   class BaseClass{
      final function calculate($val1,$val2){
         $sum = $val1+$val2;
         echo "Sum of given no=".$sum;
         }
      }
   class ChildClass extends BaseClass{
      function calculate($x,$y){
         $mult=$val1*$val2;
         echo "Multiplication of given no=".$mult;
         }
      }
   $obj= new ChildClass();
   $obj->show(10,10);
?>

Output:

PHP Fatal error: Cannot override final method BaseClass::calculate()

Explanation:

Trong ví dụ trên, lớp Baseclass là lớp cha. Trong đó phương pháp tính toán được đánh dấu là cuối cùng. Nó ngụ ý rằng chúng ta không thể ghi đè phương thức hiển thị trong bất kỳ lớp con nào của nó. Để xác định lỗi & nbsp; ChildClass đang cố gắng xác định phương thức cuối cùng hiển thị (). Điều này sẽ tạo ra một lỗi nghiêm trọng, nó ngụ ý rằng phương pháp cuối cùng của lớp cha không thể được xác định trong lớp con của nó.

Example:

Sử dụng từ khóa "cuối cùng" trước lớp

<?php
   final Class BaseClass{
      function printData($val1,$val2){
         $add=$val1+$val2;
         echo "Sum of given no=".$s;
         }
      }
   class Child extends BaseClass{
      function printData($val1,$val2){
         $m=$val1*$val2;
         echo "Multiplication of given no=".$m;
         }
      }
   $obj= new Child();
   $obj->printData(20,20);
?>

Output:

PHP Fatal error: Class Child may not inherit from final class (BaseClass)

Explanation:

Trong ví dụ trên Baseclass định nghĩa với trận chung kết, kết quả đó chúng tôi không thể mở rộng lớp này. Khi trẻ em cố gắng mở rộng từ Baseclass (ngụ ý trẻ em là lớp con của Baseclass). Đối với tình huống này, PHP đã ném một thông báo lỗi, lớp trẻ em không thể được thừa hưởng từ lớp cuối cùng (Baseclass).

Hướng dẫn what is the meaning of a final method and a final class in php? - ý nghĩa của phương thức cuối cùng và lớp cuối cùng trong php là gì?

Cập nhật vào ngày 30 tháng 3 năm 2019 22:30:26

  • Câu hỏi và câu trả lời liên quan
  • Từ khóa cuối cùng của PHP
  • Lớp cuối cùng trong Java
  • Từ khóa cuối cùng trong PHP
  • Mô phỏng lớp cuối cùng trong C ++
  • Tại sao lớp cuối cùng được sử dụng trong Java?
  • Thực hiện một lớp học cuối cùng ở Java
  • Phương pháp cuối cùng có được kế thừa trong Java không?
  • Một lớp học trong Java có thể là cả cuối cùng và trừu tượng?
  • Một lớp cuối cùng có thể được phân lớp trong Java?
  • Phương pháp cuối cùng trong Java là gì?
  • Cuối cùng, cuối cùng và hoàn thiện trong C#
  • Phương pháp riêng và cuối cùng trong C#
  • Cuối cùng, cuối cùng và hoàn thiện trong Java
  • Một phương thức lớp bên trong cục bộ có thể truy cập các biến cuối cùng cục bộ trong Java không?
  • Tại sao lớp chuỗi là bất biến hoặc cuối cùng trong Java?

Hướng dẫn what is the meaning of a final method and a final class in php? - ý nghĩa của phương thức cuối cùng và lớp cuối cùng trong php là gì?

Định nghĩa của lớp cuối cùng PHP

Php Final Class là một lớp ngăn chặn việc ghi đè một phương pháp của các lớp con chỉ bằng tiền tố cuối cùng với định nghĩa. Điều đó có nghĩa là nếu chúng ta xác định một phương thức với tiền tố cuối cùng thì nó sẽ ngăn chặn việc ghi đè phương thức. Thông thường, sự kế thừa của khái niệm PHP OOPS sẽ cho phép sự linh hoạt to lớn trong hệ thống phân cấp lớp. Bạn có thể tạo một hoặc nhiều lớp con được sử dụng để mở rộng chức năng lớp cơ sở, nhưng khái niệm OOPS về PHP đưa ra một cách để tạo các lớp không thể mở rộng. Các lớp/lớp như vậy được/được gọi là lớp cuối cùng/lớp cuối cùng.

Syntax:

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

Php Final Class hoạt động như thế nào?

Php Final Class hoạt động dựa trên khai báo chỉ bằng cách thêm từ khóa cuối cùng trước từ lớp. Lớp cuối cùng hoạt động mà không mở rộng lớp học. Lớp con có thể ghi đè các phương pháp cuối cùng. Các biến lớp bình thường không thể được sử dụng để khai báo là cuối cùng. Lớp cuối cùng PHP hoặc phương pháp có thể được mở rộng giống như các lớp bình thường khác. Nếu lớp cuối cùng được mở rộng bằng cách sử dụng bất kỳ lớp bình thường nào khác thì lớp cuối cùng sẽ khiến PHP trả về lỗi nghiêm trọng trong đầu ra của trình duyệt. Tương tự như vậy, phương pháp cuối cùng cũng vậy.

Ví dụ về lớp cuối cùng của PHP

Sau đây là các ví dụ được đưa ra dưới đây:

Ví dụ 1

Ở đây một lớp được tạo bằng cách sử dụng từ khóa cuối cùng trước lớp. Lớp cuối cùng này có thể mở rộng lớp học này. Bên trong lớp cuối cùng, các phương thức/chức năng cuối cùng được tạo ra. Sau đó, lớp bình thường BMWCAR1, được tạo bằng phương thức/hàm và sau đó tạo phương thức/hàm cuối cùng bên trong các thẻ đoạn văn. Sau đó, một lớp học Tata1, được tạo ra để mở rộng BMWCAR1, có hàm/phương thức bình thường Hiển thị (), nhưng phương thức giá () không được tạo trong lớp Tata1 vì gọi nó sẽ cung cấp lỗi nghiêm trọng vì từ khóa cuối cùng . Nó là không thể mở rộng. Sau đó, đối tượng $ bmwcar1 của người Viking được tạo/tạo. Các phương thức gọi () và phương thức cuối cùng Giá () được thực hiện từ lớp BMWCAR1 và lớp Tata1.

Code:

<?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();
?>

Output:

Hướng dẫn what is the meaning of a final method and a final class in php? - ý nghĩa của phương thức cuối cùng và lớp cuối cùng trong php là gì?

Ví dụ #2

Ở đây, lớp A1 A1 được tạo với từ khóa cuối cùng. Sau đó, hàm bình thường, show show1 () được tạo với hai biến. Bên trong của nó tổng của các biến sẽ được lưu trữ trong biến $ sum1. Sau đó, hàm Echo được sử dụng để in tổng giá trị biến. Sau đó, lớp B1 B1 được tạo ra để mở rộng lớp A1 A1. Bên trong phép nhân lớp B1 B1 của các biến được thực hiện và lưu trong biến $ multi1. Kết quả nhân được in bằng cách sử dụng chức năng Echo nhưng ở đây chúng tôi đang mở rộng lớp cuối cùng là A1 A1 với lớp bình thường. Ở đây chúng tôi mở rộng lớp/phương pháp cuối cùng. Nó trả về lỗi nghiêm trọng vì chúng tôi mở rộng một lớp cuối cùng.

Code:

<?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);
?>

Output:

Hướng dẫn what is the meaning of a final method and a final class in php? - ý nghĩa của phương thức cuối cùng và lớp cuối cùng trong php là gì?

Ví dụ #3

Ở đây, một lớp bình thường, C1 C1 với chức năng E ($ xx1) được tạo ra sau đó một lớp D1 D1 được tạo ra để mở rộng lớp C1 C1 để sử dụng các tham số của C1 C1. Vì vậy, lớp D1 D1 sẽ kế thừa các thuộc tính lớp của C1 C1 và cũng sẽ chứa các thuộc tính của lớp D1 D1. Cho đến đây mọi thứ đều đúng. Sau đó, một lớp A1 A1 được tạo ra với chức năng/phương thức cuối cùng bên trong nó với các biến của X1 X1, các biến của Y1, tính toán tổng của các biến. Sau khi lớp B1 B1 này được tạo ra để mở rộng lớp A1 A1. Nhưng các lớp cuối cùng, các phương pháp là không thể mở rộng. Nếu đã cố gắng gây ra lỗi nghiêm trọng sẽ xảy ra.

Code:

<?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);
?>

Output:

Hướng dẫn what is the meaning of a final method and a final class in php? - ý nghĩa của phương thức cuối cùng và lớp cuối cùng trong php là gì?

Ví dụ #4

Trong ví dụ dưới đây, một lớp bình thường được tạo lúc đầu và sau đó một phương thức cuối cùng được tạo bên trong nó với hai biến để tính tổng của hai giá trị biến thì một phương thức/hàm mới được tạo bên trong lớp bình thường Để nhân hai giá trị biến và trả về kết quả. Ở đây chỉ có một phương thức cuối cùng được tạo và được gọi mà không cần mở rộng để sẽ không có lỗi/lỗi. Tổng của các biến và cả phép nhân của các biến sẽ được in.

Code:

<?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);
?>

Output:

Hướng dẫn what is the meaning of a final method and a final class in php? - ý nghĩa của phương thức cuối cùng và lớp cuối cùng trong php là gì?

Thuận lợi

Khái niệm lớp cuối cùng PHP là duy nhất và không thể mở rộng như các lớp bình thường. Giống như các lớp cuối cùng, các phương pháp cuối cùng cũng không thể mở rộng theo một cách duy nhất. Khái niệm lớp cuối cùng của PHP sẽ ngăn chặn chức năng kế thừa lớn và cũng khuyến khích thành phần. Tất cả các API công khai của lớp cuối cùng là/là một phần của giao diện/giao diện. Nó giúp đóng gói. Lớp/Phương thức cuối cùng sẽ ngăn lớp/Phương thức ghi đè các lớp/phương thức con. Các lớp/lớp cuối cùng của PHP sẽ ngăn ngừa khai thác. Mặc dù các lớp/lớp cuối cùng có thể được mở rộng nhưng các lớp cuối cùng này có thể mở rộng ở một số điều kiện. Nó giống như lớp cuối cùng trở thành hoặc có thể trở thành một lớp con nhưng nó có thể được biến thành một siêu lớp.

Từ khóa cuối cùng của PHP thậm chí có thể được đặt ngay trước hoặc ngay sau khi xác định chỉ định truy cập. Phương pháp/Phương thức cuối cùng của PHP cũng không có loại/loại trả về cụ thể/được chỉ định và tên/tên phương thức.

Bài viết đề xuất

Đây là một hướng dẫn cho lớp cuối cùng PHP. Ở đây chúng tôi thảo luận về định nghĩa và hoạt động của lớp cuối cùng của PHP cùng với các ví dụ khác nhau và việc triển khai mã của nó. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm -

  1. Tài liệu tham khảo PHP
  2. Lỗi nhật ký PHP
  3. Tìm kiếm mảng PHP
  4. Lớp học trừu tượng trong PHP

Ý nghĩa của phương pháp cuối cùng trong PHP là gì?

Từ khóa cuối cùng trong PHP được sử dụng trong bối cảnh khác nhau. Từ khóa cuối cùng chỉ được sử dụng cho các phương thức và lớp. Phương pháp cuối cùng: Khi một phương thức được khai báo là cuối cùng thì không thể thực hiện được phương thức đó. Phương pháp được tuyên bố là cuối cùng do một số lý do thiết kế.When a method is declared as final then overriding on that method can not be performed. Methods are declared as final due to some design reasons.

Phương pháp cuối cùng và lớp cuối cùng là gì?

Nếu chúng tôi khởi tạo một biến với từ khóa cuối cùng, thì chúng tôi không thể sửa đổi giá trị của nó.Nếu chúng ta khai báo một phương thức là cuối cùng, thì nó không thể bị ghi đè bởi bất kỳ lớp con nào. Và nếu chúng ta khai báo một lớp là cuối cùng, chúng ta sẽ hạn chế các lớp khác để kế thừa hoặc mở rộng nó.If we declare a method as final, then it cannot be overridden by any subclasses. And, if we declare a class as final, we restrict the other classes to inherit or extend it.

Ý nghĩa của lớp cuối cùng là gì?

Một lớp cuối cùng là một lớp không thể mở rộng.Ngoài ra các phương thức có thể được khai báo là cuối cùng để chỉ ra rằng không thể bị ghi đè bởi các lớp con.Ngăn chặn lớp không được phân nhóm có thể đặc biệt hữu ích nếu bạn viết API hoặc thư viện và muốn tránh được mở rộng để thay đổi hành vi cơ sở.a class that can't be extended. Also methods could be declared as final to indicate that cannot be overridden by subclasses. Preventing the class from being subclassed could be particularly useful if you write APIs or libraries and want to avoid being extended to alter base behaviour.

Những gì được gọi là phương pháp cuối cùng?

Chúng tôi có thể khai báo một phương thức là cuối cùng, một khi bạn khai báo một phương thức cuối cùng, nó không thể bị ghi đè.Vì vậy, bạn không thể sửa đổi một phương thức cuối cùng từ một lớp phụ.Mục đích chính của việc thực hiện một phương pháp cuối cùng là nội dung của phương thức không nên được thay đổi bởi bất kỳ người ngoài nào.once you declare a method final it cannot be overridden. So, you cannot modify a final method from a sub class. The main intention of making a method final would be that the content of the method should not be changed by any outsider.