sınıflarda miras alma (extends)

sınıflarda miras alma

bir sınıfın özelliğinin diğer bir sınıfa (yeni oluşturulan bir sınıfa) aktarılmasıdır.

dört işlem yapan bir hesap makinesi sınıfı oluşturduğumuzda bu sınıf toplama,çıkarma, çarpma ve bölmede rahatlıkla kullanabiliriz. fakat biz bilimsel bir hesap makinesi yapmaya kalktığımızda yani bir sınıf oluşturmak isteyebilir. işte burada miraz alma olayı doğrudan karşımıza geliyor. şöyleki yazmak istediğiniz yeni sınıfta ( bilimsel hesap makinesi) tekrardan dört işlem yapan metodları yazmamak için bu yeni sınıfı dört işlem sınıfından türetirseniz eski önceki sınıfta bulunan toplama,çıkarma, çarpma ve bölme metodlarını da rahatlıkla kullanablirsiniz.

[code language=”php”]
Class Topla_cikar_carp{
public $sayi1=10;
public $sayi2=20;
public function topla(){
$sonuc = ($this->sayi1+$this->sayi2);
echo "topla() metodu içindeki Toplama Sonucu :: ". $sonuc ."<br>";
}
private function cikar(){
$sonuc = ($this->sayi1-$this->sayi2);
echo "cikar() metodu içindeki Çıkarma Sonucu :: ". $sonuc ."<br>";
}
protected function carp(){
$sonuc = ($this->sayi1*$this->sayi2);
echo "carp() metodu içindeki Çarpma Sonucu :: ". $sonuc ."<br>";
}
}
$ornek = new Topla_cikar_carp();
echo "1 :: "; $ornek->topla();
// $ornek->cikar(); // bu satır hata üretir. topla() metodu private
// $ornek->carp(); // bu satır hata üretir. carp() metodu protected
class Hesapla extends Topla_cikar_carp{
function toplayi_cagir(){
$this->topla();
}
function cikari_cagir(){
$this->cikar();
}
function carpmayi_cagir(){
$this->carp();
}
}
$ornek2 = new Hesapla();
echo "2 :: "; $ornek2->topla();
echo "3 :: "; $ornek2->toplayi_cagir();
// $ornek2->cikar(); // bu satır hata üretir. cikar() metodu Topla_cikar_carp sınıfı içinde ve aynı zamanda private özelliğe sahip
// echo "5 :: "; $ornek2->carp(); // bu satır hata üretir. Topla_cikar_carp sınıfı içinde ve protected özelliğe sahip
// $ornek2->cikari_cagir(); // bu satır hata üretir. cikari_cagir() metodu içinden Topla_cikar_carp içinde sınıfı içindeki cikar() metodu çağrılıyor, cikar() metodu ise private özelliğe sahip
echo "4 :: "; $ornek2->carpmayi_cagir();

[/code]

Facebooktwitterlinkedin