Abstraksi kelas PHP

WBOY
Lepaskan: 2023-08-31 06:00:01
ke hadapan
1532 orang telah melayarinya

Abstraksi kelas PHP

Pengenalan

Dalam pengaturcaraan berorientasikan objek, kelas abstrak ialah kelas yang boleh dijadikan instantiated, iaitu tidak mungkin untuk mengisytiharkan objek kelas tersebut. PHP menyokong konsep kelas absarct sejak versi 5.0

Kelas yang ditakrifkan dengan kata kunci abstrak menjadi kelas abstrak. Selanjutnya, mana-mana kelas yang mengandungi sekurang-kurangnya satu kaedah abstrak juga dianggap abstrak.

<?php
class testclass{
   //
}
?>
Salin selepas log masuk

kaedah abstrak

Kaedah abstrak hanya mengisytiharkan tandatangannya iaitu keterlihatan, hujah dan jenis pulangannya dengan petunjuk jenis dan tidak mempunyai sebarang fungsi. Kelas yang mewarisi kelas abstrak sedemikian mesti mengatasi (menyediakan definisi) semua kaedah abstrak. Kaedah yang sepadan dalam kelas kanak-kanak mesti membawa tandatangan yang sama seperti dalam kelas induk. Jika kelas kanak-kanak tidak memenuhi syarat ini, penghurai PHP membuang pengecualian. Kelas yang memanjangkan kelas abstrak kini boleh dijadikan instantiated, oleh itu ia dipanggil kelas konkrit

Dalam contoh berikut, kelas induk mempunyai dua kaedah abstrak, hanya satu daripadanya ditakrifkan semula dalam kelas anak. Ini mengakibatkan ralat seperti berikut −

Contoh

 Demo Langsung

$a=new testclass();
PHP Fatal error: Uncaught Error: Cannot instantiate abstract class testclass
Salin selepas log masuk

Output

Berikut ialah mesej ralat

<?php
abstract class testclass{
   abstract function test1();
   abstract function hello();
}
class myclass extends testclass{
   function test1(){
      echo "Overrides parent test method";
   }
}
$a=new myclass();
?>
Salin selepas log masuk

Kaedah abstrak dengan hujah

Apabila abstrak, kaedah itu mesti ditakrifkan dengan argumen kelas bilangan argumen yang sama

Dalam contoh berikut, kaedah abstrak dalam kelas induk mempunyai dua argumen. Kelas kanak-kanak juga mentakrifkan fungsi yang sama dengan dua argumen

Contoh

 Demo Langsung

PHP Fatal error: Class myclass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (testclass::hello)
Salin selepas log masuk

输出

这将产生以下输出 −

<?php
abstract class testclass{
   abstract function hello($name, $age);
}
class myclass extends testclass{
   function hello($name, $age){
      echo "My name is $name and my age is $age";
   }
}
$a=new myclass();
$a->hello("Ravi",20);
?>
Salin selepas log masuk

Atas ialah kandungan terperinci Abstraksi kelas PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan