Hi,
Hätte mal die Frage wie folgendes am besten gelöst werden kann. Die Frage geistert mir schon länger durch den Kopf. Es geht um mehrfach extends. Weiß zwar das dies in Java nicht möglich ist und bin generell auch zufrieden mit den erklärungen dennoch würde ich gerne wissen wie man folgendes gut machen kann.
Ich habe zwei basis klassen
aus diesen beidem classen möchte ich nun eine dritte erzeugen
Somit könnte mein Delphin sowohl schwimmen wie auch mit seinen Lungen atmen.
Da dies so in Java nicht geht, muss was anderes her.
Gehen würde es mit Interfaces. Jedoch müsste hier die Delphin klasse ja die beiden methoden schwimmen und atmen selber implementieren. Ist doof da Delphin genauso atmet wie alle anderen Lungenatmer und genauso schwimmen soll wie alle anderen Wasserbewohner.
Eine möglichkeit hierfür könnte folgendes sein. Aber besonders toll finde ich es nicht, jedoch hätte es den vorteil, das der code zentral liegt und von allen erweiterungen von Wasserbewohnern und Lungenatmern benutzt werden kann. Je nachdem was sie sind. Ein Pferd muss ja atmen aber nicht schwimmen genauso wie ein Hai schwimmen aber nicht atmen muss (halt nicht mit Lunge).
Hoffe mal hier kennt jemand eine gute Designidee. Bin mit sicherheit nicht der erste der sowas machen will.
Hätte mal die Frage wie folgendes am besten gelöst werden kann. Die Frage geistert mir schon länger durch den Kopf. Es geht um mehrfach extends. Weiß zwar das dies in Java nicht möglich ist und bin generell auch zufrieden mit den erklärungen dennoch würde ich gerne wissen wie man folgendes gut machen kann.
Ich habe zwei basis klassen
Java:
public class Wasserbewohner{
public void schwimmer(){
// sehr komplexe methode zum schwimmen
}
}
public class Lungenatmer{
public void atmen(){
// sehr komplexe methode um sauerstoff zu atmen
}
}
Java:
public class Delphin extends Wasserbewohner, Lungenatmer{ }
Somit könnte mein Delphin sowohl schwimmen wie auch mit seinen Lungen atmen.
Da dies so in Java nicht geht, muss was anderes her.
Gehen würde es mit Interfaces. Jedoch müsste hier die Delphin klasse ja die beiden methoden schwimmen und atmen selber implementieren. Ist doof da Delphin genauso atmet wie alle anderen Lungenatmer und genauso schwimmen soll wie alle anderen Wasserbewohner.
Eine möglichkeit hierfür könnte folgendes sein. Aber besonders toll finde ich es nicht, jedoch hätte es den vorteil, das der code zentral liegt und von allen erweiterungen von Wasserbewohnern und Lungenatmern benutzt werden kann. Je nachdem was sie sind. Ein Pferd muss ja atmen aber nicht schwimmen genauso wie ein Hai schwimmen aber nicht atmen muss (halt nicht mit Lunge).
Java:
public interface Wasserbewohner{
public void schwimmer();
}
public interface Lungenatmer{
public void atmen();
}
public class Schwimmen{
public static void schwimmen(){
// sehr komplexe methode zum schwimmen
}
}
public class Atmen{
public static void atmen(){
// sehr komplexe methode um sauerstoff zu atmen
}
}
public class Delphin implements Wasserbewohner, Lungenatmer{
public static void schwimmen(){
Schwimmen.schwimmen();
}
public static void atmen(){
Atmen.atmen();
}
}
Hoffe mal hier kennt jemand eine gute Designidee. Bin mit sicherheit nicht der erste der sowas machen will.