Hallo!
ich habe zwei Klassen (A,B), wobei B A erbt. In A ist ein enum Feld ImageSize. B hat ebenfalls ein enum ImageSize. In A gibt es eine Methode zum setzen bestimmer Parameter die in Abhängigkeit zum enum Feld gesetzt werden.
Jetzt möchte ich, dass wenn ich ein Object der Klasse B habe, das dieses Object die Methode in der Elternklasse A mit seinem ImageSize enum Feld durchführt.
Wie geht das? geht das überhaupt?
A:
Die Methode welche dafür da ist Größe zu setzten, und von B indirekt durch den Konstruktoraufruf von A angesprungen wird:
und B mit dem enum ImageSize in dem die Pfadangaben etwas anders sind Dieses Feld soll in der oberen Methode bekannt sein:
ich habe zwei Klassen (A,B), wobei B A erbt. In A ist ein enum Feld ImageSize. B hat ebenfalls ein enum ImageSize. In A gibt es eine Methode zum setzen bestimmer Parameter die in Abhängigkeit zum enum Feld gesetzt werden.
Jetzt möchte ich, dass wenn ich ein Object der Klasse B habe, das dieses Object die Methode in der Elternklasse A mit seinem ImageSize enum Feld durchführt.
Wie geht das? geht das überhaupt?
A:
Code:
public class BasicImageProvider {
protected enum ImageSize {
SMALL("Icons/16x16/") ,
MEDIUM("Icons/24x24/") ,
BIG("Icons/32x32/"),
HUGE("Icons/48x48/") ;
private String name;
private ImageSize(String name ){
this.name = name;
}
public String getName(){
return name;
}
}
public BasicImageProvider(String image, BasicImageSize size) {
this.image = image;
setSize(size);
}
// code .....
Die Methode welche dafür da ist Größe zu setzten, und von B indirekt durch den Konstruktoraufruf von A angesprungen wird:
Code:
protected void setSize(BasicImageSize size){
switch (size) {
case SMALL:
imageSize = ImageSize.SMALL;
break;
case MEDIUM:
imageSize = ImageSize.MEDIUM;
break;
case BIG:
imageSize = ImageSize.BIG;
break;
case HUGE:
imageSize = ImageSize.HUGE;
break;
default:
imageSize = ImageSize.MEDIUM;
}
}
und B mit dem enum ImageSize in dem die Pfadangaben etwas anders sind Dieses Feld soll in der oberen Methode bekannt sein:
Code:
public class RackImageProvider extends BasicImageProvider implements IRackImageKeys{
private enum ImageSize {
SMALL("Icons/Rack/16x16/") ,
MEDIUM("Icons/Rack/24x24/") ,
BIG("Icons/Rack/32x32/"),
HUGE("Icons/Rack/48x48/") ;
private String name;
private ImageSize(String name ){
this.name = name;
}
public String getName(){
return name;
}
}
private ImageSize imageSize;
public RackImageProvider(String image, BasicImageSize size) {
super(image, size);
}
}