Php 8 Inheritance

Php 8 Inheritance

PHP 8'de Kalıtım (Inheritance), nesne yönelimli programlamanın temel bir prensibidir ve bir sınıfın (üst sınıf veya ana sınıf) özelliklerini ve metotlarını başka bir sınıfa (alt sınıf veya türetilmiş sınıf) miras verme yeteneğini ifade eder. Kalıtım, kodun yeniden kullanılabilirliğini artırır ve daha organize bir yapı oluşturur.

1. Kalıtımın Temel Kavramları

  • Üst Sınıf (Parent Class): Diğer sınıflara özellik ve metotları sağlayan sınıf.
  • Alt Sınıf (Child Class): Üst sınıftan miras alan ve kendi özelliklerini ve metotlarını ekleyebilen sınıf.
  • Miras Alma: Alt sınıf, üst sınıfın özelliklerini ve metotlarını kullanabilir.

2. Kalıtımın Kullanımı

Kalıtım, extends anahtar kelimesi ile tanımlanır. Aşağıda basit bir örnek bulunmaktadır:

Örnek:

class Animal { public function speak( ) { return "Animal speaks"; } } class Dog extends Animal { public function bark( ) { return "Woof!"; } } $dog = new Dog(); echo $dog->speak(); // "Animal speaks" (Üst sınıftan miras alındı) echo $dog->bark(); // "Woof!" (Alt sınıfa ait metot)

3. Kalıtım ile Özellik ve Metot Kullanımı

Alt sınıf, üst sınıfın özelliklerine ve metotlarına doğrudan erişebilir. Ancak, üst sınıfta tanımlanan protected ve public erişim belirleyicilerine sahip olan özellikler ve metotlar alt sınıftan erişilebilirken, private olanlara erişilemez.

Örnek:

class Person { public $name; protected $age; // Sadece alt sınıflardan erişilebilir private $ssn; // Sadece bu sınıf içinde erişilebilir public function __construct( $name, $age, $ssn ) { $this->name = $name; $this->age = $age; $this->ssn = $ssn; } public function getDetails( ) { return "Name: " . $this->name . ", Age: " . $this->age; } } class Employee extends Person { public function __construct( $name, $age, $ssn, public $position ) { parent::__construct($name, $age, $ssn); // Üst sınıfın yapıcısını çağır } public function getEmployeeDetails( ) { return $this->getDetails() . ", Position: " . $this->position; } } $employee = new Employee("Alice", 30, "123-45-6789", "Manager"); echo $employee->getEmployeeDetails(); // "Name: Alice, Age: 30, Position: Manager" // echo $employee->ssn; // Hata! Private özelliğe erişilemez.

4. Method Overriding (Metot Geçersiz Kılma)

Alt sınıf, üst sınıfta tanımlı bir metodu geçersiz kılabilir (override) ve kendi davranışını tanımlayabilir. Bu, üst sınıfın metotlarını özelleştirmek için kullanılır.

Örnek:

class Shape { public function area( ) { return 0; // Varsayılan alan } } class Rectangle extends Shape { public function __construct( public $width, public $height ) {} public function area( ) { return $this->width * $this->height; // Alan hesaplama } } $rectangle = new Rectangle(5, 10); echo $rectangle->area(); // 50

5. Çoklu Kalıtım

PHP, doğrudan çoklu kalıtımı desteklemez. Yani bir sınıf birden fazla üst sınıftan miras alamaz. Ancak, arayüzler (interfaces) kullanarak benzer bir yapı oluşturabilirsiniz. Bir sınıf birden fazla arayüzü uygulayabilir.

Örnek:

interface CanFly { public function fly( ); } interface CanSwim { public function swim( ); } class Duck implements CanFly, CanSwim { public function fly( ) { return "Duck is flying"; } public function swim( ) { return "Duck is swimming"; } } $duck = new Duck(); echo $duck->fly(); // "Duck is flying" echo $duck->swim(); // "Duck is swimming"

6. Constructor ve Miras

Alt sınıfın yapıcısı, üst sınıfın yapıcısını çağırmak için parent::__construct() ifadesini kullanır. Bu, üst sınıfın özelliklerini başlatmaya olanak tanır.

Örnek:

class Vehicle { public function __construct( public $brand ) {} } class Car extends Vehicle { public function __construct( public $brand, public $model ) { parent::__construct($brand); // Üst sınıfın yapıcısını çağır } } $car = new Car("Toyota", "Corolla"); echo $car->brand; // "Toyota" echo $car->model; // "Corolla"

7. Final Sınıflar ve Metotlar

final anahtar kelimesi, bir sınıfın veya metotların alt sınıflar tarafından geçersiz kılınmasını engellemek için kullanılır.

Örnek:

class Base { final public function show( ) { return "This is a final method."; } } class Derived extends Base { // public function show() { } // Hata! final metot geçersiz kılınamaz. }

Sonuç

PHP 8'de kalıtım, kodun yeniden kullanılabilirliğini artıran ve programın daha düzenli olmasını sağlayan önemli bir özelliktir. Üst sınıflar, alt sınıflara özellik ve metot sağlar, bu da kodu daha etkili bir şekilde yönetmeyi kolaylaştırır. Kalıtımın doğru kullanımı, nesne yönelimli programlamada daha sağlam ve sürdürülebilir yazılımlar geliştirmenize yardımcı olur.



Yorum Ekle

Üzerine gel