Inheritance

Bahasa Indonesianya adalah pewarisan.

Menciptakan hirarki antar kelas (Parent & Child).
Child class mewarisi property dan method Parent-nya.
Child class memperluas / mengembangkan fungsionalitas Parent-nya.

// Parent
class OrangTua {
  // Memiliki property dan method
}

// Child
class AnakPertama Extends OrangTua {
  // Mewarisi semua property dan method dari OrangTua
  // Boleh memiliki property dan method baru khusus untuk AnakPertama
}

class AnakKedua Extends OrangTua {
  // Mewarisi semua property dan method dari OrangTua
  // Boleh memiliki property dan method baru khusus untuk AnakKedua
}

// AnakPertama dan AnakKedua tidak saling mewarisi, masing-masing aja itu mah

PHP akan mendahulukan property dan method dari Child sebelum mencari di Parent. Jadi, jika ada nama property dan method yang sama di Child dan Parent, maka akan dieksekusi yang Child-nya.

Misal:

class OrangTua {
  public function __construct() {
    echo "Aku OrangTua!";
  }
}

class AnakPertama  extends OrangTua {

}

$anak = new AnakPertama();

// pada browser akan dicetak "Aku OrangTua!"

Tapi jika class AnakPertama juga memiliki construct:

class OrangTua {
  public function __construct() {
    echo "Aku OrangTua!";
  }
}

class AnakPertama extends OrangTua {
  public function __construct() {
    echo "Aku AnakPertama!";
  }
}

$anak = new AnakPertama();

// pada browser akan dicetak "Aku AnakPertama!"

Tidak hanya berlaku untuk construct, tapi berlaku juga untuk property dan method yang lain.

Overriding

Bahasa Indonesia-nya mah ambil alih.

Gunakan keyword parent:: sebelum nama methodnya.

Jadi, ketika Parent dan Child memiliki nama method yang sama dan kita ingin menggunakan method dari Parent, maka gunakanlah teknik overriding ini.


Web Programming UNPAS

OOP DASAR pada PHP #6 - InheritanCe (Bagian 1)
OOP DASAR pada PHP #7 - Inheritance (Bagian 2)
OOP DASAR pada PHP #8 - Overriding