5o Ergastirio
AbstractDemo
abstract class A {
abstract void callme();
//πλÞρεις μÝθοδοι επιτρεπονται επßσης !!!
void callmetoo() {
System.out.println("This is a concrete method.");
}
}
class B extends A {
void callme() {
System.out.println("B's impletation of callme.");
}
}
class AbstractDemo {
public static void main(String args[]) {
B b = new B();
b.callme();
b.callmetoo();
}
}
Override
class A {
int i, j;
A(int a, int b) {
i=a;
j=b;
}
//εμφÜνιση των i και j
void show() {
System.out.println("i and j: " + i + " " + j);
}
}
class B extends A {
int k;
B(int a,int b, int c) {
super(a,b);
k = c;
}
//εμφÜνιση του k. Υπερφüρτωση της show() της Α.
void show() {
System.out.println("k = " + k);
}
}
class Override {
public static void main(String args[]) {
B subOb = new B(1,2,3);
subOb.show(); //κλÞση της show() στο Β.
}
}
Simple Inheritance
//δημιουργßα superclass
class A {
int i,j;
void showij() {
System.out.println("i and j: " + i + "," + j);
}
}
//δημιουργßα μιας subclass που κληρονομεß την Α.
class B extends A {
int k;
void showk() {
System.out.println("k: " + k);
}
void sum() {
System.out.println("i+j+k: " + (i+j+k));
}
}
class SimpleInheritance {
public static void main(String args[]) {
A superOb = new A();
B subOb = new B();
//Η superclass μπορεß να χρησιμοποιεß τα δικÜ της.
superOb.i = 10;
superOb.j = 20;
System.out.println("Contents of superOb: ");
superOb.showij();
System.out.println();
// H subclass Ýχει πρüσβαση σε üλα τα δημüσια μÝλη
//της κλÜσης που δημιουργεß.
subOb.i = 7;
subOb.j = 8;
subOb.k = 9;
System.out.println("Contents of subOb: ");
subOb.showij();
subOb.showk();
System.out.println();
System.out.println("Sum of i, j, and k in subOb:");
subOb.sum();
}
}