Προς το περιεχόμενο

Πρόβλημα με abstract κλάσεις στην Java


niknax

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σε όλους!

Το πρόγραμμα παρακάτω δε δέχεται τα ορίσματα που έχω βάλει στη 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,B);

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

 

Ευχαριστώ πολύ όποιον μπορεί να βοηθήσει!

Δημοσ.

1)Στην τάξη Trigwno μην ξαναδηλώνεις το μήκος και το πλάτος.Αυτά κληρονομούνται

2)Στην τάξη Sxima δήλωσε το μήκος και το πλάτος protected και όχι private

3)Όπου mik κάνε το mikos και plat κάνε το platos

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...