CodeBlanks Logo Icon CodeBlanks

implements ile uygulama

PHP kursu · Orta seviye · Ders 48/115

implements ile bir interface'in methodlarını sınıfta uygulamayı öğrenirsin.

implements anahtar kelimesi

Bir sınıfın bir interface'i uyguladığını bildirmek için implements anahtar kelimesi kullanılır: class Circle implements Shape { ... }.

Sınıf, interface'te tanımlı tüm methodları aynı imzayla yazmak zorundadır. Eksik method olursa PHP fatal error fırlatır.

Böylece sınıf, interface'in sözleşmesine bağlı kalmış olur. Dışarıdan bakıldığında Circle bir Shape'tir ve Shape beklenen her yerde kullanılabilir.

method uygulama örneği

Shape interface'ini uygulayan bir Circle sınıfı yazalım. Önce interface: interface Shape { public function area(): float; }.

Sonra sınıf: class Circle implements Shape { public function area(): float { return 3.14 * $this->radius * $this->radius; } }. Sınıf artık area() methodunu kendi gövdesiyle tanımlar.

Dışarıdan $circle = new Circle() dersen ve $circle->area() çağırırsan, Circle'ın kendi gövdesi çalışır. Sözleşme yerine gelmiştir.

Uygulama Circle sınıfı Shape interface'ini uygular

Önce interface Shape { public function area(): float; } tanımla. Sonra class Circle implements Shape yaz; private float $radius property'si ve __construct(float $radius) yapıcı metodu olsun, yapıcı $this->radius = $radius atasın. area() methodu return 3.14 * $this->radius * $this->radius döndürsün. Sonra $circle = new Circle(5) oluştur ve echo $circle->area() . "\n" yazdır.

Örnek çözümü göster
float; } yaz. Sonra class Circle implements Shape içine private float $radius, __construct ve area methodunu tanımla.
Örnek çözüm:
<?php
// Shape interface'ini tanımla ve Circle sınıfı uygula
interface Shape {
    public function area(): float;
}
class Circle implements Shape {
    private float $radius;
    public function __construct(float $radius) {
        $this->radius = $radius;
    }
    public function area(): float {
        return 3.14 * $this->radius * $this->radius;
    }
}
$circle = new Circle(5);
echo $circle->area() . "\n";

Kendini test et

  1. implements derken ne zorunludur?

    • interface'in tüm methodlarını aynı imzayla yazmak
    • interface'in yalnızca bir methodunu yazmak
    • methodları private yapmak
    • interface'e property eklemek
    Cevabı göster

    interface'in tüm methodlarını aynı imzayla yazmak — Doğru. implements dendiğinde interface'in tüm methodları aynı imzayla yazılmalıdır.

  2. implements kelimesini ekle

    class Circle ____ Shape {
        public function area(): float { return 3.14; }
    }
    Cevabı göster
    class Circle implements Shape {
        public function area(): float { return 3.14; }
    }
  3. implements ile ilgili ifadeleri eşleştir

    implements Shape
    Sınıf sözleşmeyi kabul eder
    area() methodu
    Sınıfta gövdesiyle yazılır
    eksik method
    Fatal error verir
    interface Shape
    Sözleşme tanımı
  4. interface'in methodlarını yazmazsan ne olur?

    • Uyarı (warning) verilir, kod çalışır
    • Fatal error verilir, sınıf kullanılamaz
    • Methodlar otomatik boş gövdeyle oluşur
    • Hiçbir şey olmaz, göz ardı edilir
    Cevabı göster

    Fatal error verilir, sınıf kullanılamaz — Doğru. implements dendiğinde tüm methodlar yazılmalıdır; eksik method fatal error verir.

Orta seviye bölümündeki tüm dersler