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{ // } ?>
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
Contoh
Demo Langsung
$a=new testclass(); PHP Fatal error: Uncaught Error: Cannot instantiate abstract class testclass
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(); ?>
Apabila abstrak, kaedah itu mesti ditakrifkan dengan argumen kelas bilangan argumen yang sama
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)
这将产生以下输出 −
<?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); ?>
Atas ialah kandungan terperinci Abstraksi kelas PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!