ضع في اعتبارك مقتطف الكود التالي: ... } القط الطبقة العامة يمتد PET { لون السلسلة الخاص السلسلة العامة getColor () {...} } كينيل الطبقة العامة { الفراغ الثابت العام الرئيسي (سلسلة [] args) { Pet Cat = New Cat ("Feline" ، 12 ، "Orange") ؛ cat.getColor () ؛ // خطأ المترجم: getColor () غير محدد بالحيوان الأليفة } }
في فئة بيت الكلب ، عندما يتم تعيين كائن CAT لمتغير PET ، يمكن الوصول فقط إلى الأعضاء المحددة في PET. يتضمن ذلك طرقًا مثل getName () و getage () ، ولكن ليس getColor ().لحل هذا ، هناك خياران:
إعلان المتغير كفكذا فرعي:
abstract public class Pet { ... } public class Cat extends Pet { private String color; public String getColor() { ... } } public class Kennel { public static void main(String[] args) { Pet cat = new Cat("Feline", 12, "Orange"); cat.getColor(); // Compiler error: getColor() not defined in Pet } }
أعلن المتغير باعتباره الفئة الفرعية المحددة:
cat = new cat ("Feline" ، 12 ، "Orange") ؛ cat.getColor () ؛ // صالحة ، يتم تعريف getColor () في CAT
2. يلقي المتغير إلى الفئة الفرعية:
يلقي المتغير إلى فئة فرعية معروفة أو متوقعة:
Cat cat = new Cat("Feline", 12, "Orange"); cat.getColor(); // Valid, getColor() is defined in Cat
مثال على التنفيذ: الفراغ الثابت العام الرئيسي (سلسلة [] args) { Cat Cat = New Cat ("Feline" ، 12 ، "Orange") ؛ System.out.println ("Cat's Color:" cat.getColor ()) ؛ } }
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3