⊗ppOpFnMt 64 of 107 menu

PHP'de OOP'de Soyut Metotlar

Soyut sınıflar aynı zamanda soyut metotlar da içerebilir. Bu tür metotların uygulaması olmamalıdır, amaç, alt sınıflarda bu tür metotların olması gerektiğini belirtmektir. Aslında bu metotların uygulanması artık alt sınıfların görevidir.

Bir metodu soyut olarak bildirmek için, beyanında abstract anahtar kelimesi yazılmalıdır.

Pratikte deneyelim. Varsayalım ki, User sınıfının tüm alt sınıflarının increaseRevenue metoduna sahip olması gerekiyor.

Bu metod, kullanıcının mevcut gelirini almalı ve parametre olarak verilen bir miktar kadar artırmalıdır.

User sınıfının kendisi, hangi alt sınıfın ne tür bir gelire sahip olacağını bilmez - sonuçta bir çalışan için bu maaş, bir öğrenci için ise bursdur. Bu nedenle her alt sınıf bu metodu kendi yöntemine göre uygulayacaktır.

Buradaki öz şudur ki, User sınıfının soyut metodu, programcıyı bu metodu alt sınıflarda uygulamaya zorlar, aksi takdirde PHP hata verecektir. Böylece siz veya kodunuzla çalışan başka bir programcı, bir alt sınıfta gerekli metodu uygulamayı asla unutamaz.

Öyleyse, pratikte deneyelim. User sınıfına increaseRevenue soyut metodunu ekleyelim:

<?php abstract class User { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } // Gövdesi olmayan soyut metod: abstract public function increaseRevenue($value); } ?>

Employee sınıfımız şimdilik değişmeden kalsın. Bu durumda, Employee sınıfından bir nesne oluşturmasak bile, sadece sınıflarımızı tanımlayan kodu çalıştırsak bile - PHP hata verecektir.

Şimdi Employee sınıfında increaseRevenue metodunun uygulamasını yazalım:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } // Metodun uygulamasını yazalım: public function increaseRevenue($value) { $this->salary = $this->salary + $value; } } ?>

Sınıfımızın çalışmasını test edelim:

<?php $employee = new Employee; $employee->setName('john'); $employee->setSalary(1000); $employee->increaseRevenue(100); echo $employee->getSalary(); ?>

increaseRevenue metodunu Student sınıfında da uygulayalım. Ancak şimdi metodumuz bursu artıracak:

<?php class Student extends User { private $scholarship; // burs public function getScholarship() { return $this->scholarship; } public function setScholarship($scholarship) { $this->scholarship = $scholarship; } // Metod bursu artırır: public function increaseRevenue($value) { $this->scholarship = $this->scholarship + $value; } } ?>

User sınıfınıza aynı soyut increaseRevenue metodunu ekleyin. Bu metodun uygulamasını Employee ve Student sınıflarında yazın.

Figure sınıfında, şeklin alanını ve çevresini almak için soyut metotlar yapın.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet