Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Abstraksi kelas PHP

Abstraksi kelas PHP

WBOY
WBOYke hadapan
2023-08-30 23:17:061459semak imbas

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{
   //
}
?>

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

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();
?>

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)

输出

这将产生以下输出 −

<?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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam