java:abstract_classes

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Abstract Κλάσεις ====== Μέχρι τώρα γνωρίσαμε κλάσεις που αποτελούν σχέδια αντικειμένων. Εκτός από τις κλάσεις αυτές, η Java επιτρέπει ορισμό κλάσεων οι οποίες είναι πιο γενικές και δεν μπορούν να υλοποιηθούν απευθείας αντικείμενα. Αν και οι συγκεκριμένες κλάσεις δεν μπορούν να παράγουν αντικείμενα μπορούν να έχουν υποκλάσεις οι οποίες παράγουν αντικείμενα. Οι κλάσεις αυτές έχουν τον προσδιοριστή //abstract// μπροστά από το όνομα της κλάσης ως εξής: <code java> public abstract class GraphicObject { // declare fields // declare nonabstract methods abstract void draw(); } </code> Μία //abstract// κλάση μπορεί να έχει "κανονικές" μεθόδους ή //abstract// μεθόδους ή συνδυασμό των παραπάνω. Με τον όρο //abstract method// εννοούμε μία μέθοδο της οποίας ορίζεται μόνο το prototype αλλά δεν ορίζεται η υλοποίηση. Η υλοποίηση της θα οριστεί σε κάποια υποκλάση της συγκεκριμένης //abstract// κλάσης. Επίσης, από μία //abstract// κλάση μπορεί να οριστεί μία υποκλάση που και εκείνη να είναι //abstract//. Δείτε το παρακάτω παράδειγμα ορισμού μιας //abstract// κλάσης <code java Employee.java> public abstract class Employee { private String name; private String address; private int id; public Employee(String name, String address, int id) { System.out.println("Constructing an Employee"); this.name = name; this.address = address; this.id = id; } public abstract int computeSalary() { } public String toString() { return name + " " + address + " " + number; } public String getName() { return name; } public String getAddress() { return address; } public void setAddress(String newAddress) { address = newAddress; } public int getNumber(){ return number; } } </code> <code java Secretary.java> public class Secretary extends Employee { int salary; public Secretary(String name, String address, int id, int montly_salary) { super(name, address, id); salary = monthly_salary; } int computeSalary() { return salary; } } </code>

java/abstract_classes.1424023406.txt.gz · Last modified: 2016/02/26 11:15 (external edit)