class Super{
public int i=3;
}
class Sub extends Super{
public int i=4;
public int summe( int a){
return a + super.i;
}
public static void main(String[] args){
Sub sub= new Sub();
System.out.println( "Summe: " + sub.summe(sub.i) );
}
}
Hier werden i aus Super und i aus Sub addiert.
class Super{
public void m1(A a){
System.out.println("Super A a");
}
public void m2(B b){
System.out.println("Super B b");
}
public static void main(String agrs[]){
A a= new A();
B b= new B();
Super s = new Sub();
s.m1(a);
s.m2(b);
s.m3(b);
}
}
class Sub extends Super{
public void m2(B b){
System.out.println("Sub B b");
}
public void m3(B b){
System.out.println("Sub B b");
}
}
class A{}
class B extends A{}
m1 wird von Super übernommen
m2 wird von Sub übernommen
m3 wird nicht übernommen
class Super{
public void m1(Person a, Person b){
System.out.println("Person a, Person b");
}
public void m1(Kind a, Person b){
System.out.println("Kind a, Person b");
}
public void m1(Person a, Erwachsener b){
System.out.println("Person a, Erwachsener b");
}
public static void main(String agrs[]){
Kind kind= new Kind();
Erwachsener erw= new Erwachsener();
Super s = new Super();
s.m1(kind, erw);
}
}
class Person{}
class Kind extends Person{}
class Erwachsener extends Person{}
Realisierung mit abstrakter Klasse
abstract class Geometrieobjekt{
public abstract void druckeEigenschaften();
}
class Kreis extends Geometrieobjekt{
public void druckeEigenschaften(){
System.out.println("Kreis ist rund");
}
}
class Rechteck extends Geometrieobjekt{
public void druckeEigenschaften(){
System.out.println("Rechteck ist nicht rund");
}
}
public class Geometrieobjektverwaltung {
public static void main(String[] args) {
Geometrieobjekt geometrieobjekt = null;
if (args[0].equals("Kreis"))
geometrieobjekt = new Kreis();
// if (args[0].equals("Bogenstueck"))
// geometrieobjekt = new Bogenstueck();
if (args[0].equals("Rechteck"))
geometrieobjekt = new Rechteck();
/* ... */
if (geometrieobjekt == null) {
System.out.println("Ein " + args[0]
+ " ist bisher nicht implementiert");
} else {
geometrieobjekt.druckeEigenschaften();
}
}
}