मैं ऑब्जेक्ट बनाने के लिए कोड लिख रहा हूं, ऑब्जेक्ट क्लोन कर रहा हूं, फिर दो की तुलना करें।क्लोन() ने एक्सेस किया है - सार्वजनिक ऑब्जेक्ट क्लोन()
सवाल, अष्टकोण में वस्तु, एक वस्तु का एक विस्तार GeometricObject
public class Octagon extends GeometricObject implements Comparable<Octagon>, Cloneable {
private double side;
public Octagon (double side){
this.side = side;
}
public Object clone() throws CloneNotSupportedException {
Octagon octClone = (Octagon)super.clone();
return octClone;
}
है Octagon.java
एक और में, TestOctagon.java नाम की एक फ़ाइल में, मेरा मुख्य विधि है:
public class TestOctagon {
public static void main(String[] args) {
GeometricObject test = new Octagon(5); //create an Octagon with a side of 5
System.out.println("Area is: "+test.getArea());
System.out.println("Perimeter is: "+test.getPerimeter());
Octagon copy = (Octagon)test.clone();
}
}
त्रुटियां मुख्य विधि की अंतिम पंक्ति पर आती हैं।
clone() has protected access in Object
मैं Octagaon में क्लोन विधि का नाम बदलने की कोशिश की है, cloneme कहता हूं, लेकिन फिर मैं त्रुटि मिलती है:
cannot find symbol
symbol: method cloneme()
location: variable test of type GeometricObject
मैं महसूस कर रही है क्योंकि अष्टकोण किसी अन्य वस्तु फैली समस्या है, हो सकता है ?
मुझे वास्तव में कोई समाधान नहीं मिल रहा है, और मैंने यहां अन्य सभी क्लोन() पोस्ट पढ़ने में एक अच्छा घंटा बिताया है।
संपादित करें: यह आवश्यक है कि मैं क्लोन का उपयोग करूं। मुझे पता है कि आम सहमति है क्लोन बोर्क किया गया है।
आप किसी सुरक्षित विधि ओवरराइड नहीं कर सकते सार्वजनिक किया जाना है। आपके 'अष्टकोण' वर्ग में इसे 'संरक्षित ऑब्जेक्ट क्लोन() ' –