Rumah >pembangunan bahagian belakang >C++ >Baru vs Override: Bilakah anda harus menggunakan setiap pengubah kaedah dalam warisan?

Baru vs Override: Bilakah anda harus menggunakan setiap pengubah kaedah dalam warisan?

Susan Sarandon
Susan Sarandonasal
2025-01-28 11:51:09834semak imbas

new vs. override: When Should You Use Each Method Modifier in Inheritance?

memahami watak pengubahsuaian

dan new override Dalam pengaturcaraan yang berorientasikan objek, mewarisi kaedah yang membolehkan kelas yang diperoleh untuk menggunakan semula dan mengubah suai kelas asas. Walau bagaimanapun,

dan

adalah dua pengubah yang berbeza. new override Situasi 1: Gunakan kaedah warisan

pengubah

new Apabila menggunakan pengubah , kelas yang diperoleh membuat kaedah berasingan dengan nama yang sama dengan kaedah asas. Ini sebenarnya menyembunyikan keterlihatan kaedah kelas asas dalam derivatif. Pengekodan kelas asas secara langsung menggunakan pelaksanaan kaedah kelas asas, dan kod pengekodan yang merujuk kelas yang diperolehi akan menggunakan pelaksanaan kaedah kelas yang diperolehi.

Situasi 2: Gunakan kaedah warisan

pengubah new

Sebaliknya, pengubahsuaian kelas derivatif direka untuk menggantikannya dengan kaedah kelas asas dengan tandatangan yang sama. Ini bermakna apabila kaedah itu dipanggil pada rujukan kelas asas, ia akan sentiasa menggunakan realisasi definisi kelas derivatif. override Perbezaan utama

override Terlihat:

Sembunyikan kaedah kelas asas, dan menggantikannya.

Panggilan dan analisis:
  • Sentiasa panggil kaedah kelas yang diperolehi, dan panggil pelaksanaan definisi akhir, walaupun akses rujukan kelas asas adalah sama. new Contoh: override
  • Ia boleh digunakan untuk membuat versi yang sama sekali berbeza kaedah, dan
  • digunakan untuk mengembangkan atau mengubah suai kaedah asas. new Contoh override
  • Pertimbangkan kelas asas dan derivatif berikut: new Dalam contoh ini, pengubah override di kelas yang diperolehi memastikan bahawa apabila doit () dipanggil pada kelas yang diperolehi, ia akan melaksanakan realisasi definisi dalam diperolehi.doit, tanpa mengira jenis rujukan Jenis digunakan

Atas ialah kandungan terperinci Baru vs Override: Bilakah anda harus menggunakan setiap pengubah kaedah dalam warisan?. 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