Hướng dẫn can we inherit final class in php? - chúng ta có thể kế thừa lớp cuối cùng trong php không?

Từ khóa cuối cùng ngăn các lớp con ghi đè một phương thức hoặc hằng số bằng cách tiền tố định nghĩa với final. Nếu bản thân lớp đang được xác định cuối cùng thì nó không thể được mở rộng.

Ví dụ #1 Phương pháp cuối cùng ví dụ

Ví dụ #2 Ví dụ về lớp cuối cùng

Ví dụ #3 Hằng số cuối cùng Ví dụ như của Php 8.1.0

Lưu ý: Thuộc tính không thể được khai báo cuối cùng: chỉ các lớp, phương thức và hằng số [kể từ Php 8.1.0] có thể được khai báo là cuối cùng. Kể từ Php 8.0.0, các phương thức riêng tư có thể không được khai báo cuối cùng ngoại trừ hàm tạo.: Properties cannot be declared final: only classes, methods, and constants [as of PHP 8.1.0] may be declared as final. As of PHP 8.0.0, private methods may not be declared final except for the constructor.

Penartur tại Yandex Dot Ru ¶

15 năm trước

0

Ẩn danh ¶

15 năm trước

moreTesting[] {
       echo 
"BaseClass::moreTesting[] called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting[] {
       echo 
"ChildClass::moreTesting[] called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting[]
?>
1

Ai đó chấm khác ở nơi khác chấm lưới ¶

13 năm trước

moreTesting[] {
       echo 
"BaseClass::moreTesting[] called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting[] {
       echo 
"ChildClass::moreTesting[] called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting[]
?>
2

moreTesting[] {
       echo 
"BaseClass::moreTesting[] called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting[] {
       echo 
"ChildClass::moreTesting[] called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting[]
?>
3

moreTesting[] {
       echo 
"BaseClass::moreTesting[] called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting[] {
       echo 
"ChildClass::moreTesting[] called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting[]
?>
4

moreTesting[] {
       echo 
"BaseClass::moreTesting[] called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting[] {
       echo 
"ChildClass::moreTesting[] called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting[]
?>
5

moreTesting[] {
       echo 
"BaseClass::moreTesting[] called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting[] {
       echo 
"ChildClass::moreTesting[] called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting[]
?>
6

moreTesting[] {
       echo 
"BaseClass::moreTesting[] called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting[] {
       echo 
"ChildClass::moreTesting[] called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting[]
?>
7

Ẩn danh ¶

8 năm trước

moreTesting[] {
       echo 
"BaseClass::moreTesting[] called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting[] {
       echo 
"ChildClass::moreTesting[] called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting[]
?>
8

moreTesting[] {
       echo 
"BaseClass::moreTesting[] called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting[] {
       echo 
"ChildClass::moreTesting[] called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting[]
?>
9

Bài Viết Liên Quan

Chủ Đề