0Pricing
PHP Academy · Pelajaran

Memperluas Class dengan Pewarisan

Gunakan extends untuk membangun hierarki class dan menimpa method.

Memperluas Class dengan Pewarisan adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.

Pendahuluan: Pewarisan PHP

Pewarisan memungkinkan suatu kelas (turunan) menggunakan kembali dan memperluas kode dari kelas lain (induk) dengan kata kunci extends. PHP mendukung pewarisan tunggal.

Konsep Utama

Konsep utama:

  • Kelas turunan mewarisi semua anggota publik/terlindungi
  • Timpa metode induk untuk mengubah perilaku
  • Panggil metode induk dengan parent::
  • Gunakan final untuk mencegah penimpaan

extends Dasar

Contoh:

<?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()); // 79

Penimpaan Metode

Kelanjutan:

<?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');

Kata Kunci final

Pendalaman:

<?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      { /* ... */ }
}

Pemeriksaan instanceof

Penggunaan praktis:

<?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);   // false

Kelas Dasar Abstrak

Penggunaan lanjutan:

<?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;
    }
}

Pola

Pola pewarisan PHP yang umum digunakan untuk menyelesaikan masalah desain berulang secara rapi. Terapkan pola tersebut secara konsisten agar kode mudah dibaca dan dipelihara.

Kapan Menggunakannya

Mengetahui kapan menerapkan pewarisan PHP sama pentingnya dengan mengetahui caranya. Penggunaan berlebihan menimbulkan kompleksitas, sedangkan penggunaan yang terlalu sedikit menimbulkan duplikasi.

Contoh di Dunia Nyata

Dalam aplikasi nyata, pewarisan PHP sering digunakan dalam kerangka kerja, ORM, dan lapisan layanan. Memahaminya akan mempersiapkan Anda untuk berkontribusi pada proyek PHP profesional.

Kesalahan Umum

Hindari kesalahan berikut saat menggunakan pewarisan PHP:

  • Selalu panggil parent::__construct() untuk menginisialisasi keadaan kelas induk
  • Jangan timpa metode hanya untuk memanggil induk tanpa perubahan
  • Gunakan final untuk metode yang penting bagi keamanan
  • Lebih baik gunakan komposisi daripada hierarki pewarisan yang dalam

Pemeriksaan Singkat

Kata kunci apa yang mencegah metode ditimpa dalam subkelas?

Ringkasan: Pewarisan PHP

Ringkasan:

  • Selalu panggil parent::__construct() untuk menginisialisasi keadaan kelas induk
  • Jangan timpa metode hanya untuk memanggil induk tanpa perubahan
  • Gunakan final untuk metode yang penting bagi keamanan
  • Lebih baik gunakan komposisi daripada hierarki pewarisan yang dalam

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Memperluas Class dengan Pewarisan” gratis?

Ya — teks lengkap “Memperluas Class dengan Pewarisan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Memperluas Class dengan Pewarisan”?

Gunakan extends untuk membangun hierarki class dan menimpa method. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai PHP Academy?

Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Memperluas Class dengan Pewarisan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Memperluas Class dengan Pewarisan
  2. Class dan Method Abstrak
  3. Mengimplementasikan Interface
  4. Trait untuk Penggunaan Ulang Kode
← Kembali ke PHP Academy