मान लीजिए मैं निम्नलिखित स्थिति है:क्या इंटरफ़ेस की गारंटी देने का कोई तरीका जावा में कक्षा को बढ़ाता है?
public abstract class Vehicle {
public void turnOn() { ... }
}
public interface Flier {
public void fly();
}
वहाँ एक रास्ता है कि मैं गारंटी ले सकते हैं कि किसी भी वर्ग कि Flier
लागू करता भी Vehicle
का विस्तार करना चाहिए है? मैं Flier
एक अमूर्त वर्ग नहीं बनाना चाहता क्योंकि मैं कुछ अन्य इंटरफेस को इसी तरह से मिश्रण करने में सक्षम होना चाहता हूं।
उदाहरण के लिए:
// I also want to guarantee any class that implements Car must also implement Vehicle
public interface Car {
public void honk();
}
// I want the compiler to either give me an error saying
// MySpecialMachine must extend Vehicle, or implicitly make
// it a subclass of Vehicle. Either way, I want it to be
// impossible to implement Car or Flier without also being
// a subclass of Vehicle.
public class MySpecialMachine implements Car, Flier {
public void honk() { ... }
public void fly() { ... }
}
इंटरफेस इंटरफेस का विस्तार करते हैं। (सार) कक्षाएं (आंशिक रूप से) इंटरफेस को लागू करती हैं और अन्य कक्षाओं का विस्तार करती हैं। – asgs
मेरे सुझाव का प्रयास करें, आप वाहन से विस्तार किए बिना MySpecialMachine संकलित नहीं कर सकते! –