niknax Δημοσ. 31 Μαΐου 2008 Δημοσ. 31 Μαΐου 2008 Καλησπέρα σε όλους! Το πρόγραμμα παρακάτω δε δέχεται τα ορίσματα που έχω βάλει στη main καθώς δημιουργώ το αντικείμενο trig. Γιατί?! Ενώ τρέχει κανονικά αν η κλάση Trigwno δεν extends από τη Sxima...Η θεωρία λέει πως abstract δηλώνεται μια κλάση για να κληροδοτήσει π.χ τις μεθόδους της στις υποκλάσεις της και να υλοποιηθούν με διαφορετικό τρόπο.Τότε γιατί η toString όταν καλείται φαίνεται να μη "βλέπει" τα ορίσματά του δημιουργού?? Δοκίμασα να δημιουργήσω και πίνακα αντικειμένων και από εκεί να καλέσω την toString αλλά πάλι τίποτα.. Κώδικας: public abstract class Sxima { private double mikos; private double platos; //δημιουργός κλάσης public Sxima (double mik,double plat) { mikos = mik; platos = plat; } //abstract μέθοδος που δεν υλοποιείται εδώ //υπολογίζει το εμβαδό public abstract double getArea(); }//τέλος class Sxima public class Trigwno extends Sxima { private double mik; private double plat; private double ypsos; //δημιουργός public Trigwno(double a,double b,double c) { super(a,; ypsos = c; } @Override public String toString() { return "Tο τρίγωνο έχει εμβαδό "+getArea()+"\n" + " και ο όγκος του είναι: "+getVolume(); } public double getArea() { return mik * plat; } public double getVolume() { return mik * plat * ypsos; } }//τέλος class Trigwno public class SximaTest { public static void main(String[] args) { Trigwno trig = new Trigwno(67,89.98,7.5); System.out.println(trig.toString()); } }//τέλος κλάσης class SximaTest Ευχαριστώ πολύ όποιον μπορεί να βοηθήσει!
george86 Δημοσ. 31 Μαΐου 2008 Δημοσ. 31 Μαΐου 2008 1)Στην τάξη Trigwno μην ξαναδηλώνεις το μήκος και το πλάτος.Αυτά κληρονομούνται 2)Στην τάξη Sxima δήλωσε το μήκος και το πλάτος protected και όχι private 3)Όπου mik κάνε το mikos και plat κάνε το platos
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.