เรียน ชาว Java สมมติว่ามีโค้ดที่เมธอดในคลาสที่สืบทอดมาถูกแทนที่
class Pet { String name; String age; String getString() { return "Домашнее животное"; } } class Cat extends Pet { String getString() { return "Кот Рыжик"; } } public static void main(String[] args) { Pet cat = new Cat(); cat.getString(); }
โปรดบอกฉันว่าเมธอด getString() เวอร์ชันใดที่จะถูกเรียกใช้สำหรับตัวแปร cat ฉันอ่านในการบรรยายว่าคุณสามารถเรียกวิธีการของวัตถุได้ก็ต่อเมื่อมีอยู่ในชั้นเรียนที่ใช้เป็นประเภทอ้างอิงถึงวัตถุ โดยไม่คำนึงถึงประเภทที่แท้จริงของวัตถุ นี่หมายความว่าในกรณีนี้เมธอดจากคลาส Pet จะถูกเรียก หรือในกรณีของการแทนที่เมธอด เมธอดจากคลาสอ็อบเจ็กต์จะถูกเรียก? ขอบคุณ
GO TO FULL VERSION