PHP: final - ключевое слово
Войти

PHP - final

PHP - final

final - ключевое слово, которое объявляется перед классом или методом для защиты от изменения

Например: Можно защитить поведение, свойства и константы от изменения другими библиотеками

Примечание: Свойства не могут быть объявлены окончательными, только классы и методы.

1. Классы, помеченные как final

После объявления класса final он не может быть унаследован. Следующий пример вызовет ошибку:

1
2
3
4
5
6
7
8
9
<?php 
 
  
final class FinalClass 
  } 

  class 
TestClass extends FinalClass
  } 

?>

2. Метод final

Ключевое слово final позволяет вам помечать методы, чтобы наследующий класс не мог перегрузить их. Разместив перед объявлениями методов или свойств класса ключевое слово final, вы можете предотвратить их переопределение в дочерних классах, например:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php 

final class BaseClass {
   public function 
test() {
       echo 
"Вызван метод BaseClass::test()\\n";
   }
   
// В данном случае неважно, укажете ли вы этот метод как final или нет
   
final public function moreTesting() {
       echo 
"BaseClass::moreTesting() called\\n";
   }
}
class 
ChildClass extends BaseClass {
}
# Выполнение заканчивается фатальной ошибкой: 
# Class ChildClass may not inherit from final class (BaseClass)
# (Класс ChildClass не может быть унаследован 
# от окончательного класса (BaseClass))

?>
Теги:
php