Kalıtımla Sınıfları Genişletme
Sınıf hiyerarşileri oluşturmak ve metotları geçersiz kılmak için extends kullanın.
Kalıtımla Sınıfları Genişletme, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.
Giriş: PHP Kalıtımı
Kalıtım, bir sınıfın (alt sınıf) extends anahtar sözcüğünü kullanarak başka bir sınıfın (üst sınıf) kodunu yeniden kullanmasını ve genişletmesini sağlar. PHP tekli kalıtımı destekler.
Temel Kavramlar
Temel kavramlar:
- Alt sınıf, tüm herkese açık ve korumalı üyeleri miras alır
- Davranışı değiştirmek için üst sınıf yöntemlerini geçersiz kılın
- Üst sınıf yöntemini
parent::ile çağırın - Geçersiz kılmayı önlemek için
finalkullanın
Temel extends Kullanımı
Örnek:
<?php
class Shape {
public function __construct(protected string $color) {}
public function describe(): string { return "A {$this->color} shape"; }
}
class Circle extends Shape {
public function __construct(string $color, private float $radius) {
parent::__construct($color);
}
public function area(): float { return M_PI * $this->radius ** 2; }
}
$c = new Circle('red', 5);
echo $c->describe(); // A red shape
echo round($c->area()); // 79Yöntem Geçersiz Kılma
Devam:
<?php
class Logger {
public function log(string $msg): void {
echo "[LOG] $msg" . PHP_EOL;
}
}
class DatabaseLogger extends Logger {
public function log(string $msg): void {
// Extend parent behavior
parent::log($msg);
// Also save to DB
echo "[DB] Saved: $msg" . PHP_EOL;
}
}
$l = new DatabaseLogger();
$l->log('User login');final Anahtar Sözcüğü
Daha derinlemesine:
<?php
class PaymentProcessor {
final public function processPayment(float $amount): void {
// Critical logic — cannot be overridden
$this->validate($amount);
$this->charge($amount);
$this->log($amount);
}
protected function validate(float $amount): void { /* ... */ }
protected function charge(float $amount): void { /* ... */ }
protected function log(float $amount): void { /* ... */ }
}instanceof Denetimi
Pratik kullanım:
<?php
class Vehicle {}
class Car extends Vehicle {}
class ElectricCar extends Car {}
$ev = new ElectricCar();
var_dump($ev instanceof ElectricCar); // true
var_dump($ev instanceof Car); // true
var_dump($ev instanceof Vehicle); // true
// Also works with interfaces
var_dump($ev instanceof Countable); // falseSoyut Temel Sınıf
İleri düzey:
<?php
abstract class Notification {
abstract public function send(string $message): bool;
public function sendBatch(array $messages): void {
foreach ($messages as $msg) {
$this->send($msg);
}
}
}
class EmailNotification extends Notification {
public function send(string $message): bool {
echo "Email: $message" . PHP_EOL;
return true;
}
}Desen
Yaygın PHP Kalıtımı desenleri, tekrarlanan tasarım sorunlarını temiz biçimde çözmek için kullanılır. Okunabilir ve bakımı kolay kod için bu desenleri tutarlı biçimde uygulayın.
Ne Zaman Kullanılmalı
PHP Kalıtımını ne zaman uygulayacağınızı bilmek, nasıl uygulanacağını bilmek kadar önemlidir. Gereğinden fazla kullanım karmaşıklığa, yetersiz kullanım ise kod tekrarına yol açar.
Gerçek Dünya Örneği
Gerçek uygulamalarda PHP Kalıtımına çerçevelerde, ORM'lerde ve hizmet katmanlarında sıkça rastlanır. Bu konuyu anlamanız, profesyonel PHP projelerine katkıda bulunmaya hazırlanmanızı sağlar.
Yaygın Hatalar
PHP Kalıtımıyla ilgili şu hatalardan kaçının:
- Üst sınıfın durumunu başlatmak için her zaman parent::__construct() çağrısını yapın
- Hiçbir değişiklik yapmadan yalnızca üst sınıfı çağırmak için yöntemleri geçersiz kılmayın
- Güvenlik açısından kritik yöntemler için final kullanın
- Derin kalıtım hiyerarşileri yerine bileşimi tercih edin
Hızlı Kontrol
Bir yöntemin alt sınıfta geçersiz kılınmasını hangi anahtar sözcük önler?
Tekrar: PHP Kalıtımı
Özet:
- Üst sınıfın durumunu başlatmak için her zaman parent::__construct() çağrısını yapın
- Hiçbir değişiklik yapmadan yalnızca üst sınıfı çağırmak için yöntemleri geçersiz kılmayın
- Güvenlik açısından kritik yöntemler için final kullanın
- Derin kalıtım hiyerarşileri yerine bileşimi tercih edin
Sıkça Sorulan Sorular
“Kalıtımla Sınıfları Genişletme” dersi ücretsiz mi?
Evet — “Kalıtımla Sınıfları Genişletme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.
“Kalıtımla Sınıfları Genişletme” dersinde ne öğreneceğim?
Sınıf hiyerarşileri oluşturmak ve metotları geçersiz kılmak için extends kullanın. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
PHP Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Kalıtımla Sınıfları Genişletme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Kalıtımla Sınıfları Genişletme
- Soyut Sınıflar ve Metotlar
- Arayüzleri Uygulama
- Kod Yeniden Kullanımı için Trait'ler