Einführung in die objektorientierte Programmierung

Vererbung durch Klassen und Interfaces

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.

Überschreiben und Überladen

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

Mehrdeutigkeit

 
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{}
 


Aufgabe 1

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();
    }
  }
}