PHP

Финальные классы и методы

Финальный (final) класс или метод используется для того, чтобы предоставить разра-
ботчику возможность управлять наследованием. Классы или методы, объявленные
как финальные, не могут быть расширены и/или перегружены классами-
наследниками. Чтобы запретить перегрузку определенного класса или метода, в опреде-
лении класса или метода должно стоять ключевое слово final, как показано в листинге
13.20.

Листинг 1. Объявление финальных классов или методов
<?php 
final class NoExtending { 
public function myFunction() { 
/* Логика функции */ 
} 
} 
class restrictedExtending { 
final public function anotherFunc() { 
/* Логика функции */ 
} 
} 
class myChild extends restrictedExtending { 
public function thirdFunction() { 
/* Логика функции */ 
} 
} 
?>

В листинге 1 определяются три разных класса. Первый из них, класс
NoExtending, никогда не будет родительским классом для класса-наследника, потому что
сам по себе весь класс был объявлен как final. С другой стороны, хотя класс
restrictedExtending может быть расширен, метод anotherFunc(), находящийся в нем,
никогда не будет перегружен классом-наследником. Как можно видеть, ключевое слово
final полезно использовать для того, чтобы обеспечить возможность выполнения дей-
ствий определенным способом в структурах объектов, не запрещая пользователям реали-
зовывать свои собственные подклассы.
Теги:
final, класса, класс, function, restrictedExtending, функции, Логика, public, class, будет, anotherFunc, методы, NoExtending, классом, листинге, слово, метода, никогда, метод, чтобы, возможность, наследника, зовывать, реали, пользователям, родительским, объектов, структурах, способом, выполнения, видеть, можно, обеспечить, объявлен, использовать
Добавлено: 18 Апреля 2018 21:14:17 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...