Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mari kita bincangkan tentang perbezaan antara kaedah antara muka kelas PHP

Mari kita bincangkan tentang perbezaan antara kaedah antara muka kelas PHP

PHPz
PHPzasal
2023-04-24 15:48:52633semak imbas

PHP ialah bahasa pengaturcaraan yang popular Dalam pengaturcaraan berorientasikan objek, antara muka ialah konsep biasa. Antara muka dalam PHP bermakna kelas mentakrifkan satu set kaedah, tetapi tidak menyediakan pelaksanaan Sebaliknya, kaedah ini dilaksanakan oleh kelas yang melaksanakan antara muka. Antara muka memainkan peranan menyeragamkan dan mengekang kelas pelaksanaan, dan mempunyai fleksibiliti dan skalabiliti yang hebat. Dalam antara muka PHP, ia dibahagikan kepada dua jenis: antara muka kelas abstrak dan antara muka biasa. Dalam artikel ini, kami akan memberi tumpuan kepada perbezaan antara kaedah antara muka kelas PHP.

1. Antara muka kelas abstrak

  1. Takrifan kelas abstrak

Kelas abstrak tidak boleh dijadikan instantiated, tetapi hanya boleh diwarisi Fungsi utamanya Ia menyediakan a struktur asas untuk kelas lain Kod biasa diletakkan dalam kelas abstrak, dan butiran dilaksanakan dalam subkelas. Kaedah dalam kelas abstrak adalah pilihan, dan sesetengahnya boleh ditakrifkan sebagai kaedah abstrak (iaitu, kaedah dengan hanya nama kaedah tetapi tiada badan kaedah Kelas abstrak mesti mengandungi sekurang-kurangnya satu kaedah abstrak, jika tidak semua kaedah di bawah pengisytiharannya akan Dipertimbangkan a kaedah biasa.

Contoh:

abstract class Animal{
   abstract function eat();
   function sleep(){
      echo "晚安,好梦!";
   }
}
  1. Pewarisan dan pelaksanaan kelas abstrak

Memandangkan kelas abstrak tidak boleh digunakan, ia hanya boleh dilaksanakan melalui subkelas , subkelas mesti melaksanakan semua kaedah abstrak yang ditakrifkan dalam kelas abstrak, jika tidak, subkelas juga mesti ditakrifkan sebagai kelas abstrak.

Contoh:

class Cat extends Animal{
   function eat(){
      echo "吃小鱼干!";
   }
}

Dalam kod di atas, kami mentakrifkan kelas Cat untuk mewarisi kelas Animal dan melaksanakan Cat dalam kaedah kelas eat(), supaya kita boleh mengakses kaedah pelaksanaan khusus dalam kelas abstrak ini melalui kelas Cat.

  1. Kelebihan kelas abstrak
  • Kelas abstrak boleh memberikan tahap penggunaan semula kod tertentu;
  • Kelas abstrak boleh mengasingkan lapisan bawah butiran Pelaksanaan sistem, dengan itu mengurangkan gandingan antara modul;
  • Kelas abstrak boleh menyediakan antara muka yang konsisten, membolehkan subkelas menyeragamkan proses pelaksanaan apabila melaksanakan fungsi tertentu.

2. Antara muka konvensional

Antara muka konvensional ialah satu lagi bentuk antara muka dalam PHP. Antara muka biasa boleh mempunyai kaedah dan pemalar Semua kaedah yang ditakrifkan dalam antara muka mesti dilaksanakan oleh mana-mana kelas, jika tidak ralat maut akan berlaku. Dengan melaksanakan kelas antara muka, kelas boleh mengakses kaedah dan pemalar yang ditakrifkan dalam antara muka.

  1. Takrifan antara muka am

Dalam PHP, kita boleh mentakrifkan antara muka umum dan menentukan kaedah yang perlu dilaksanakan:

interface IAnimal{
   public function eat();
   public function run();
}

Dalam coretan kod ini, kami mentakrifkan antara muka IAnimal dan menentukan dua kaedah yang perlu dilaksanakan - eat() dan run().

  1. Pelaksanaan antara muka biasa

Apabila melaksanakan antara muka biasa, anda mesti melaksanakan semua kaedah yang ditakrifkan di dalamnya semasa melaksanakan antara muka, jika tidak ralat penyusunan akan berlaku.

Contoh:

class Dog implements IAnimal{
   function eat(){
      echo "吃骨头!";
   }
   function run(){
      echo "追皮球!";
   }
}

Dalam coretan kod di atas, kami mentakrifkan kelas Dog, melaksanakan antara muka IAnimal dan melaksanakan dua yang ditakrifkan dalam Kaedah antara muka - eat() dan run().

  1. Kelebihan antara muka konvensional
  • Antara muka konvensional boleh meningkatkan kebolehgunaan semula kod
  • Antara muka konvensional boleh mengurangkan gandingan antara tahap kod, meningkatkan kebolehselenggaraan kod;
  • Antara muka konvensional boleh dilaksanakan oleh berbilang kelas, dan menyediakan antara muka bersatu untuk meningkatkan kebolehskalaan kod.

3. Perbezaan antara antara muka kelas abstrak dan antara muka konvensional

  1. Definisi dan penggunaan

Cara menentukan antara muka kelas abstrak dan antara muka konvensional definisi Mereka berbeza antara muka kelas abstrak ditakrifkan dan dilaksanakan melalui kelas abstrak, manakala antara muka biasa ditakrifkan dan dilaksanakan secara langsung.

Antara muka kelas abstrak dilaksanakan melalui pewarisan, manakala antara muka biasa dilaksanakan dengan melaksanakan semua kaedah yang ditakrifkan dalam antara muka.

  1. Perbezaan antara kelas abstrak dan kelas biasa

Kelas abstrak boleh mempunyai kaedah biasa dan kaedah abstrak, manakala antara muka biasa hanya boleh mentakrifkan kaedah abstrak; > Kelas abstrak mesti dilaksanakan melalui warisan, manakala antara muka biasa boleh dilaksanakan oleh berbilang kelas

Kaedah abstrak kelas abstrak mesti dilaksanakan oleh subkelas, dan mana-mana kelas yang melaksanakan antara muka biasa mesti melaksanakannya dalam; bentuk yang sama Semua kaedah dalam antara muka.

Perbezaan dalam semantik reka bentuk
  1. Antara muka kelas abstrak digunakan terutamanya untuk menyediakan beberapa gelagat biasa atau kaedah organisasi struktur data dalam reka bentuk bahasa. Mungkin terdapat hubungan warisan atau hubungan gabungan antara kelas abstrak dan subkelasnya;

Antara muka umum digunakan terutamanya untuk mengekang protokol komunikasi antara objek dalam reka bentuk bahasa. Antara muka biasa mentakrifkan beberapa spesifikasi dan kaedah awam, yang dilaksanakan oleh berbilang kelas.

Kesimpulan

Sama ada antara muka kelas abstrak atau antara muka biasa, ia adalah konsep yang sangat penting dalam PHP. Antara muka kelas abstrak boleh menyediakan struktur warisan yang fleksibel dan menyokong pelaksanaan lalai kaedah Adalah disyorkan bahawa kaedah dalam kelas abstrak adalah kaedah biasa antara kelas manakala antara muka konvensional menyeragamkan nama kaedah kelas dan ia disyorkan bahawa kaedah dalam antara muka adalah khusus antara kaedah tugasan kelas. Oleh itu, apabila menjalankan aplikasi praktikal tertentu, kita harus memilih jenis antara muka yang berbeza mengikut senario penggunaan tertentu.

Atas ialah kandungan terperinci Mari kita bincangkan tentang perbezaan antara kaedah antara muka kelas PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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