Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah perbezaan antara warisan kelas dan warisan antara muka dalam php

Apakah perbezaan antara warisan kelas dan warisan antara muka dalam php

WBOY
WBOYasal
2022-02-21 11:04:032869semak imbas

Dalam PHP, perbezaan antara warisan kelas dan warisan antara muka ialah: Kelas PHP tidak menyokong warisan berbilang, iaitu subkelas hanya boleh mewarisi satu kelas induk, tetapi menyokong warisan berbilang peringkat, manakala antara muka menyokong warisan berbilang , iaitu, Iaitu, antara muka boleh mewarisi satu atau lebih antara muka.

Apakah perbezaan antara warisan kelas dan warisan antara muka dalam php

Persekitaran pengendalian artikel ini: sistem Windows 10, PHP versi 7.1, komputer Dell G3.

Apakah perbezaan antara warisan kelas dan warisan antara muka dalam PHP

warisan kelas PHP:

1 kelas PHP tidak menyokong warisan berbilang, iaitu subkelas boleh hanya mewarisi satu kelas induk, tetapi menyokong warisan berbilang peringkat

Contohnya:

class frist{
  public function __construct(){
    echo "我是第一个类。","<br>";
  }
  public function printer(){
    echo "frist","<br>";
  }
}
class seconds extends frist{}
class third extends seconds{}
$obj = new third();
$obj->printer();

Keputusan: Ini adalah kelas pertama. Kelas kedua dan ketiga frist tidak mengatasi kaedah pencetak() Kaedah pencetak() boleh dipanggil selepas kelas ketiga dibuat seketika.

2. Isu kebenaran warisan

(1) Kaedah persendirian kelas induk tidak boleh diwarisi, dan kelas induk diswastakan

(2) Kaedah yang dilindungi bagi kelas induk boleh diwarisi, tetapi Ia tidak boleh dipanggil oleh objek instantiated Jika dipanggil, mesej ralat "Panggil ke kaedah yang dilindungi frist::printer()" akan muncul

(3) Kaedah awam kelas induk boleh Diwarisi dan boleh dipanggil oleh objek instantiated, ia adalah kaedah awam

(4) Subkelas boleh mengatasi kaedah awam atau dilindungi kelas induk, tetapi tidak boleh memperibadikan semula kaedah Jika nama yang sama digunakan, isytiharkan semula dalam kelas ini

3 Warisan kelas antara muka

(1) Antara muka menyokong warisan berbilang, dan kaedah bagi kelas antara muka tidak perlu dilaksanakan Contohnya:

interface frist{
  public function ex1();
}
interface seconds{
  public function ex2();
}
interface third extends frist,seconds{
  public function ex3();
}
class fourth implements third{
  public function ex1(){}
  public function ex2(){}
  public function ex3(){}
}
class fourth implements frist,seconds{
  public function ex1(){}
  public function ex2(){}
}
(2) Kebenaran kaedah kelas antara muka Semuanya adalah awam, dan lalainya adalah awam

(3) Kelas yang merujuk kepada antara muka mesti melaksanakan semua kaedah antara muka, jika tidak, ralat akan dilaporkan, seperti: "Kelas e mengandungi 1 kaedah abstrak dan oleh itu mesti diisytiharkan abstrak atau melaksanakan kaedah yang selebihnya ", iaitu: kelas e mengandungi 1 kaedah abstrak, jadi kaedah yang selebihnya mesti diisytiharkan sebagai abstrak atau dilaksanakan.

4. Kelas abstrak: Selagi satu kaedah dalam kelas adalah kaedah abstrak, maka kelas ini mesti ditakrifkan sebagai kelas abstrak

(1) Kelas abstrak mewarisi dan kelas abstrak tidak boleh mengatasi kaedah induk.

(2) Warisan kelas abstrak ialah pengembangan kaedah kelas induk.

(3) Semua kaedah abstrak dalam kelas turunan yang diwarisi mesti terlebih beban sebelum ia boleh digunakan.

(4) Pengedaran biasa yang dilaksanakan oleh kelas abstrak boleh dipanggil terus dalam subkelas bukan abstrak.

5 Persamaan dan perbezaan antara antara muka dan kelas abstrak (merujuk kepada perbezaan antara kelas abstrak dan antara muka)

(1) Penggunaan antara muka dicapai melalui pelaksana kata kunci, dan untuk abstrak kelas Operasi dilaksanakan menggunakan kata kunci exotends warisan kelas

(2) Antara muka tidak mempunyai ahli data, tetapi kelas abstrak mempunyai ahli data, dan kelas abstrak boleh melaksanakan enkapsulasi data.

(3) Antara muka tidak mempunyai pembina, tetapi kelas abstrak boleh mempunyai pembina.

(4) Kaedah dalam antara muka adalah semua jenis awam, manakala kaedah dalam kelas abstrak boleh diubah suai dengan persendirian, dilindungi atau awam.

(5) Kelas boleh melaksanakan berbilang antara muka pada masa yang sama, tetapi hanya boleh melaksanakan satu kelas abstrak.

(6) Persamaan: Tiada apa-apa yang boleh ditulis dalam badan fungsi, seperti: function getName();.

Pembelajaran yang disyorkan: "

Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah perbezaan antara warisan kelas dan warisan antara muka dalam 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