نهایی (final)
کلاس نهایی (final) یعنی «دیگر ارث بری نکن». در شیء گرایی، «ارث بری (Inheritance)» یعنی کلاس فرزند، چیزهای والد را می گیرد. اما با final، این راه بسته می شود تا ساختار ثابت بماند.
تعریف و کاربرد final
کلیدواژه «final» جلوی ارث بری کلاس را می گیرد. همچنین جلوی «بازنویسی (Override)» متد ارث برده را هم می گیرد. این کار نظم می دهد و از تغییرات ناخواسته جلوگیری می کند.
نمونه: جلوگیری از ارث بری کلاس
<?php
final class MyClass {
public $name = "John";
}
// This code will throw an error
class AnotherClass extends MyClass {
}
?>
نمونه: جلوگیری از بازنویسی متد
<?php
class BaseClass {
public final function greet() {
echo "Hello";
}
}
class ChildClass extends BaseClass {
// Fatal error: Cannot override final method
// public function greet() { echo "Hi"; }
}
$obj = new ChildClass();
$obj->greet();
?>
گام های سریع تمرین
- یک کلاس ساده بساز.
- روی کلاس «final» بگذار و تست کن.
- سعی کن از آن ارث بری کنی و خطا را ببین.
نکته: وقتی رفتار باید ثابت بماند، از «کلاس نهایی (final)» استفاده کن. این کار جلوی خراب کاری ناخواسته را می گیرد.
صفحات مرتبط: extends برای ارث بری، و کلاس نهایی (final) برای مرور سریع همین مفهوم.
جمع بندی سریع
- final جلوی ارث بری را می گیرد.
- final جلوی بازنویسی متد را می گیرد.
- برای بخش های حساس، final بگذار.
- کد پایدارتر و قابل پیش بینی تر می شود.