⊗ppOpFnMt 64 of 107 menu

Kaedah Abstrak dalam OOP dalam PHP

Kelas abstrak juga boleh mengandungi kaedah abstrak. Kaedah sedemikian tidak sepatutnya mempunyai pelaksanaan, tetapi diperlukan untuk menunjukkan bahawa kaedah sedemikian mesti ada pada keturunan. Dan sebenarnya pelaksanaan kaedah tersebut - sudah menjadi tugas keturunan.

Untuk mengisytiharkan kaedah sebagai abstrak, apabila mengisytiharkannya, tulis kata kunci abstract.

Mari cuba dalam praktik. Katakan diandaikan bahawa semua keturunan kelas User harus mempunyai kaedah increaseRevenue.

Kaedah ini harus mengambil pendapatan semasa pengguna dan menambahnya dengan sejumlah nilai, yang dihantar sebagai parameter.

Kelas User sendiri tidak tahu, pendapatan apa yang akan diterima oleh pewaris - kerana bagi pekerja ia adalah gaji, manakala bagi pelajar - biasiswa. Oleh itu setiap keturunan akan melaksanakan kaedah ini dengan caranya sendiri.

Intinya di sini ialah kaedah abstrak kelas User memaksa pengaturcara untuk melaksanakan kaedah ini dalam keturunan, jika tidak PHP akan memaparkan ralat. Dengan cara ini anda, atau pengaturcara lain, yang bekerja dengan kod anda, tidak akan dapat lupa untuk melaksanakan kaedah yang diperlukan dalam keturunan.

Jadi, mari cuba dalam praktik. Mari tambahkan kaedah abstrak increaseRevenue ke dalam kelas User:

<?php abstract class User { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } // Kaedah abstrak tanpa badan: abstract public function increaseRevenue($value); } ?>

Biarkan kelas Employee kita buat sementara ini kekal tanpa perubahan. Dalam kes ini, walaupun tidak mewujudkan objek kelas Employee, tetapi hanya menjalankan kod di mana kelas-kelas kita ditetapkan, - PHP akan memaparkan ralat.

Sekarang mari kita tulis pelaksanaan kaedah increaseRevenue dalam kelas Employee:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } // Tulis pelaksanaan kaedah: public function increaseRevenue($value) { $this->salary = $this->salary + $value; } } ?>

Mari semak kerja kelas kami:

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

Mari laksanakan kaedah increaseRevenue dan dalam kelas Student. Hanya sekarang kaedah kami akan menambah biasiswa:

<?php class Student extends User { private $scholarship; // biasiswa public function getScholarship() { return $this->scholarship; } public function setScholarship($scholarship) { $this->scholarship = $scholarship; } // Kaedah menambah biasiswa: public function increaseRevenue($value) { $this->scholarship = $this->scholarship + $value; } } ?>

Tambahkan ke dalam kelas User anda kaedah abstrak yang sama increaseRevenue. Tulis pelaksanaan kaedah ini dalam kelas Employee dan Student.

Dalam kelas Figure, buat kaedah abstrak untuk mendapatkan luas dan perimeter rajah.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak