पर ओवरराइड विधि को कैसे कॉल करें Animal
कक्षा के खाने और पेय विधि को कोड में myAnimal
उदाहरण के साथ कैसे कॉल कर सकता हूं?सुपरक्लास
public class Animal {
public void eat() {
System.out.println("Animal Eats");
}
public void drink() {
System.out.println("Animal Drinks");
}
}
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("Cat Eats");
}
@Override
public void drink() {
System.out.println("Cat Drinks");
}
public static void main(String[] args) {
Cat myCat = new Cat();
myCat.eat();
myCat.drink();
Animal myAnimal = myCat;
myAnimal.eat();
myAnimal.drink();
}
}
आउटपुट है कि मैं हो रही है:
Cat Eats
Cat Drinks
Cat Eats
Cat Drinks
यह मेरा अपेक्षित आउटपुट:
Cat Eats
Cat Drinks
Animal Eats
Animal Drinks
आप बिना 'animal' कार्यान्वयन ** कॉल करना चाहते हैं ** 'बिल्ली' कार्यान्वयन? – mthmulders
जब तक आपके पास 'बिल्ली' चुड़ैल में कोई विधि नहीं है, तो super.eat(); 'आप इसे सीधे' बिल्ली ' – A4L
से नहीं कर सकते हैं, आपको उम्मीद नहीं करनी चाहिए कि आप क्या उम्मीद कर रहे हैं ... दोनों के मामले में नहीं होना चाहिए भाषा परिभाषा और उचित या वांछनीय क्या है के संदर्भ में। विरासत बहुरूपता का पूरा बिंदु यह है कि आप जो देख रहे हैं उसे प्राप्त करें और जो भी आप कहते हैं वह नहीं। –