//: c07:Sandwich.java
// Order of constructor calls.
// package c07;
// import com.bruceeckel.simpletest.*;
import java.util.*;
class Meal {
Meal() { System.out.println("Meal()"); }
}
class Bread {
Bread() { System.out.println("Bread()"); }
}
class Cheese {
Cheese() { System.out.println("Cheese()"); }
}
class Lettuce {
Lettuce() { System.out.println("Lettuce()"); }
}
class Lunch extends Meal {
Lunch() { System.out.println("Lunch()"); }
}
class PortableLunch extends Lunch {
PortableLunch() { System.out.println("PortableLunch()");}
}
public class Sandwich extends PortableLunch {
// private static Test monitor = new Test();
private Bread b = new Bread();
private Cheese c = new Cheese();
private Lettuce l = new Lettuce();
public Sandwich() {
System.out.println("Sandwich()");
}
public static void main(String[] args) {
new Sandwich();
/*
monitor.expect(new String[] {
"Meal()",
"Lunch()",
"PortableLunch()",
"Bread()",
"Cheese()",
"Lettuce()",
"Sandwich()"
});
// */
}
} ///:~
इस कोड के उत्पादन मेंआदेश जावा में बहुस्तरीय विरासत में कॉल
Meal()
Lunch()
PortableLunch()
Bread()
Cheese()
Lettuce()
Sandwich()
है के बाद से एक कक्षा में खेतों क्रम में बनाए जाते हैं वे, घोषित किया गया है क्यों
नहीं हैBread()
Cheese()
Lettuce()
उपरोक्त सूची के शीर्ष पर आते हैं?
इसके अलावा, यह इस कोड में क्या करने का प्रयास कर रहा है?
monitor.expect(new String[] {
"Meal()",
"Lunch()",
"PortableLunch()",
"Bread()",
"Cheese()",
"Lettuce()",
"Sandwich()"
});
पहले मैंने सोचा कि यह एक अज्ञात वर्ग था, लेकिन ऐसा नहीं लगता है। क्या यह एक स्ट्रिंग सरणी शुरू कर रहा है? स्ट्रिंग चर के लिए इसका नाम क्यों नहीं है? कृपया मुझे प्रोग्रामिंग निर्माण का नाम यहां इस्तेमाल किया जा रहा है।
लेकिन क्या यह आपका होमवर्क नहीं है? –
@ क्रिस्टियनमार्क यह निश्चित रूप से होमवर्क नहीं है, जावा में सोच पढ़ने के दौरान मेरे पास एक ही सवाल था। मुझे यह प्रश्न और उत्तर बहुत उपयोगी लगता है :) –