java:abstract_classes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
java:abstract_classes [2015/02/15 17:59]
gthanos
java:abstract_classes [2019/03/23 05:00] (current)
gthanos
Line 1: Line 1:
 ====== Abstract Κλάσεις ====== ====== Abstract Κλάσεις ======
  
-Μέχρι τώρα γνωρίσαμε κλάσεις που αποτελούν σχέδια αντικειμένων. Εκτός από τις κλάσεις αυτές, η Java επιτρέπει ορισμό κλάσεων οι οποίες είναι πιο γενικές και δεν μπορούν να υλοποιηθούν απευθείας αντικείμενα. Αν και οι συγκεκριμένες κλάσεις δεν μπορούν να παράγουν αντικείμενα μπορούν να έχουν υποκλάσεις οι οποίες παράγουν αντικείμενα. Οι κλάσεις αυτές έχουν τον προσδιοριστή //​abstract//​ μπροστά από το όνομα της κλάσης ως εξής:+Μέχρι τώρα γνωρίσαμε κλάσεις που αποτελούν σχέδια αντικειμένων. Εκτός από τις κλάσεις αυτές, η Java επιτρέπει ορισμό κλάσεων οι οποίες είναι πιο γενικές και δεν μπορούν να υλοποιήσουν απευθείας αντικείμενα. Αν και οι συγκεκριμένες κλάσεις δεν μπορούν να παράγουν αντικείμενα μπορούν να έχουν υποκλάσεις οι οποίες παράγουν αντικείμενα. Οι κλάσεις αυτές έχουν τον προσδιοριστή //**abstract**// μπροστά από το όνομα της κλάσης ως εξής:
  
-<code java>+<​code ​java GraphicObject.java>
 public abstract class GraphicObject { public abstract class GraphicObject {
    // declare fields    // declare fields
Line 21: Line 21:
    ​private String address;    ​private String address;
    ​private int id;    ​private int id;
-   ​public Employee(String name, String address, int id) +   ​public Employee(String name, String address, int id) {
-   {+
       System.out.println("​Constructing an Employee"​);​       System.out.println("​Constructing an Employee"​);​
       this.name = name;       this.name = name;
       this.address = address;       this.address = address;
       this.id = id;       this.id = id;
-   } +   }  
-   ​ + 
-   ​public abstract int computeSalary() ​{ +   ​public abstract int computeSalary(); 
-   } +
-   +
    ​public String toString() {    ​public String toString() {
-      return name + " " + address + " " + number;+      return name + " " + address + " " + id;
    }    }
    ​public String getName() {    ​public String getName() {
Line 45: Line 43:
    }    }
    ​public int getNumber(){    ​public int getNumber(){
-     ​return ​number;+     ​return ​id;
    }    }
 } }
 </​code>​ </​code>​
 +
 +<code java Secretary.java>​
 +public class Secretary extends Employee {
 +   int salary;
 +   ​public Secretary(String name, String address, int id, int monthly_salary) {
 +      super(name, address, id);
 +      salary = monthly_salary;​
 +   }
 +   ​public int computeSalary() {
 +      return salary;
 +   }
 +   ​public String toString() {
 +      return super.toString() + " " + salary;
 +   }
 +}
 +</​code>​
 +
 +|Προηγούμενο:​ [[ :​java:​polymorphism | Στατικός και Δυναμικός Πολυμορφισμός ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο:​ [[ :​java:​interface | Interfaces ]]|
  
java/abstract_classes.1424023188.txt.gz · Last modified: 2016/02/26 11:15 (external edit)