Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Mengakses Kaedah Subkelas daripada Pembolehubah Superclass dalam Pengaturcaraan Berorientasikan Objek?

Bagaimanakah Saya Boleh Mengakses Kaedah Subkelas daripada Pembolehubah Superclass dalam Pengaturcaraan Berorientasikan Objek?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-08 00:55:15549semak imbas

How Can I Access Subclass Methods from a Superclass Variable in Object-Oriented Programming?

Memanggil Kaedah Subkelas daripada Superclass: Memahami Keserasian Jenis

Apabila bekerja dengan warisan dalam pengaturcaraan berorientasikan objek, mengakses kaedah khusus untuk subkelas daripada pembolehubah superclass boleh mencabar. Ini kerana, secara lalai, pembolehubah yang diisytiharkan sebagai jenis superclass hanya boleh mengakses kaedah awam dan pembolehubah ahli yang wujud dalam superclass.

Untuk menggambarkan ini, pertimbangkan contoh kod yang disediakan dalam soalan. Di sini, kelas super Haiwan Peliharaan ditakrifkan dengan sifat dan kaedah biasa seperti nama dan umur. Tiga subkelas, Anjing, Kucing dan Burung, mewarisi daripada Haiwan Peliharaan dan memperkenalkan ciri dan kaedah unik untuk setiap jenis haiwan.

Dalam kelas utama Kennel, pengguna cuba mengakses kaedah khusus subkelas, seperti cat.getColor(), dog.getBreed() dan bird.getWingspan(), iaitu unik kepada Kucing, Anjing dan Burung, masing-masing. Walau bagaimanapun, kaedah ini tidak boleh diakses kerana kucing, anjing dan burung diisytiharkan sebagai contoh kelas super Haiwan Peliharaan.

Untuk menyelesaikan masalah ini, terdapat dua pilihan:

  1. Istiharkan Pembolehubah sebagai Jenis Subkelas Konkrit:

    • Isytiharkan pembolehubah sebagai kejadian khusus subkelas. Contohnya:

      Cat cat = new Cat("Feline", 12, "Orange");
      Dog dog = new Dog("Spot", 14, "Dalmation");
      Bird bird = new Bird("Feathers", 56, 12);
  2. Pembolehubah Cast kepada Jenis Subkelas Konkrit:

    • Pelakon pembolehubah superclass kepada jenis subkelas yang dijangka menggunakan operator cast ((())). Contohnya:

      Pet pet = new Cat("Feline", 12, "Orange");
      Cat cat = (Cat) pet;

Kedua-dua pendekatan membenarkan akses kepada kaedah dan sifat khusus subkelas melalui pembolehubah masing-masing.

Di Java, jenis pembolehubah menentukan kaedah yang tersedia dan pembolehubah ahli yang boleh diakses. Dengan mengisytiharkan pembolehubah sebagai subkelas konkrit atau menghantarnya kepada jenis subkelas yang dijangka, anda memastikan akses kepada fungsi yang diingini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Kaedah Subkelas daripada Pembolehubah Superclass dalam Pengaturcaraan Berorientasikan Objek?. 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