Καταρχάς καλή χρονιά σε όλους!
Στο παράδειγμα σου @Star_Light η κλάση SubNumber δεν έχει κάποιο λόγο να υπάρχει.
Όταν κάνεις extend μία κλάση το αντικείμενο που θα δημιουργήσεις θα έχει όλες τις ιδιότητες της κλάσης που κληρονόμησε.Δηλαδή
η κλάση SubNumber θα κληρονομήσει την Number και όταν θα δημιουργείς κάποιο αντικείμενο SubNumber δλδ "new SubNumber( )" αυτό το
αντικείμενο θα έχει την τιμή value και την μέθοδο setOnDisplay της Number.
Στο παράδειγμα σου η SubNumber είναι κενή άρα ουσιαστικά η SubNumber και η Number είναι ίδιες.
Ένα καλό παράδειγμα που κάναμε στη σχολή είναι αυτό.
Έχεις μία κλάση Pet,η οποία αντιστοιχεί σε όλα τα κατοικίδια που έχεις.
- Κώδικας: Επιλογή όλων
public class Pet {
private String name;
public Pet(String nm) {
name = nm;
}
public String getName() {
return name;
}
}
Έχεις την κλάση Dog η οποία αντιπροσωπεύει όλα τα σκυλιά,αλλά το σκυλί είναι και κατοικίδιο σου,άρα κληρονομεί και τις ιδιότητες του.
Στη συγκεκριμένη το όνομα.
- Κώδικας: Επιλογή όλων
public class Dog extends Pet
{
private String breed;
public Dog(String bd,String name) {
super(name);
breed = bd;
}
public String getBreed() {
return breed;
}
}
Στην γάτα το ίδιο.
- Κώδικας: Επιλογή όλων
public class Cat extends Pet {
private String color;
public Cat(String clr , String name ) {
super(name);
color = clr;
}
public String getColor() {
return color;
}
}
- Κώδικας: Επιλογή όλων
public class Main {
public static void main(String args[]) {
Dog rex = new Dog("Canis","Rex");
Cat kitty = new Cat("white","Kitty");
System.out.println("My first pet is " + rex.getName() + " and his breed is " + rex.getBreed());
System.out.println("My other pet is " + kitty.getName() + " and it's color is " + kitty.getColor());
}
}
Βλέπεις ότι εμφανίζει και στα δύο το όνομα.Αυτό συμβαίνει γιατί κληρονομεί τις ιδιότητες και τις μεθόδους της upperclass.Δε χρειάζεται να γράψεις εσύ κάτι.
Ισως να μπορούσα να γράψω ένα καλύτερο πρόγραμμα αλλά τώρα αυτό μου ήρθε.
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter