Soyut Sınıflar ve Metotlar
abstract anahtar sözcükleriyle kısmen uygulanmış temel sınıflar tanımlayın.
Soyut Sınıflar ve Metotlar, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 2. 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ş: Soyut Sınıflar
Bir soyut sınıf doğrudan örneklenemez; bir şablon görevi görür. Soyut yöntemler, uygulama içermeyen bir imza bildirir; alt sınıflar bu yöntemleri sağlamalıdır.
Temel Kavramlar
Temel kavramlar:
abstract classile bildirilir- Soyut yöntemlerin gövdesi yoktur:
abstract public function x(); - Alt sınıflar tüm soyut yöntemleri uygulamalıdır
- Hem soyut hem de somut yöntemler içerebilir
Soyut Sınıf Tanımlama
Örnek:
<?php
abstract class Animal {
public function __construct(protected string $name) {}
// Must be implemented by each subclass
abstract public function sound(): string;
// Shared concrete method
public function introduce(): string {
return "I am {$this->name} and I say: " . $this->sound();
}
}Soyut Yöntemleri Uygulama
Devam:
<?php
class Dog extends Animal {
public function sound(): string { return 'Woof'; }
}
class Cat extends Animal {
public function sound(): string { return 'Meow'; }
}
$animals = [new Dog('Rex'), new Cat('Whiskers')];
foreach ($animals as $a) {
echo $a->introduce() . PHP_EOL;
}
// I am Rex and I say: Woof
// I am Whiskers and I say: MeowŞablon Yöntem Deseni
Daha derinlemesine:
<?php
abstract class DataProcessor {
// Template method: defines the algorithm skeleton
final public function process(array $data): array {
$data = $this->validate($data);
$data = $this->transform($data);
return $this->format($data);
}
abstract protected function validate(array $data): array;
abstract protected function transform(array $data): array;
protected function format(array $data): array { return $data; }
}Soyut Sınıf ve Arayüz Karşılaştırması
Pratik kullanım:
<?php
// Use abstract class when:
// - Subclasses share implementation code
// - You need constructor logic or state
// Use interface when:
// - Defining a contract (no implementation needed)
// - Multiple inheritance of type is needed
// A class can only extend ONE abstract class
// but can implement MULTIPLE interfacesKısmi Uygulama
İleri düzey:
<?php
abstract class Repository {
// Concrete method available to all subclasses
protected function findById(int $id, string $table): array {
$stmt = $this->getDb()->prepare("SELECT * FROM $table WHERE id = ?");
$stmt->execute([$id]);
return $stmt->fetch(PDO::FETCH_ASSOC) ?: [];
}
abstract protected function getDb(): PDO;
abstract public function find(int $id): array;
}Desen
Yaygın Soyut Sınıflar 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ı
Soyut Sınıfları 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 Soyut Sınıflara ç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
Soyut Sınıflarla ilgili şu hatalardan kaçının:
- Soyut sınıflar new ile örneklenemez
- Tüm soyut yöntemler somut alt sınıflarda uygulanmalıdır
- Algoritma iskeletlerini tanımlamak için Şablon Yöntem desenini kullanın
- Soyut sınıflarda yapıcılar, özellikler ve somut yöntemler bulunabilir
Hızlı Kontrol
Bir soyut sınıfı doğrudan 'new' ile örnekleyebilir misiniz?
Tekrar: Soyut Sınıflar
Özet:
- Soyut sınıflar new ile örneklenemez
- Tüm soyut yöntemler somut alt sınıflarda uygulanmalıdır
- Algoritma iskeletlerini tanımlamak için Şablon Yöntem desenini kullanın
- Soyut sınıflarda yapıcılar, özellikler ve somut yöntemler bulunabilir
Sıkça Sorulan Sorular
“Soyut Sınıflar ve Metotlar” dersi ücretsiz mi?
Evet — “Soyut Sınıflar ve Metotlar” 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.
“Soyut Sınıflar ve Metotlar” dersinde ne öğreneceğim?
abstract anahtar sözcükleriyle kısmen uygulanmış temel sınıflar tanımlayı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 2. dersidir.
“Soyut Sınıflar ve Metotlar” 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