Vererbung Übungsaufgabe Vererbung - Erstellung Klassenhierarchie

AlexQr

Neues Mitglied
Guten Morgen zusammen,

ich probier mir selber java beizubringen. und hab mir hierfür ein paar Übungsaufgaben besorgt.
Bei einer komme ich leider nicht so richtig weiter.



Verbessern Sie nachfolgenden Code, indem Sie
eine neue sinnvolle Klassenhierarchie mit identischer Funktionalität implementieren.
Java:
public class GoodGuy {
private int currentGuyHP;
public GoodGuy(int maxHP) {
currentGuyHP = maxHP;
}
protected void respawn() {
// ...
}
public void takeDamage(int dmg) { respawn(); }
}
public class BigBoss {
private int reward, currentBossHP;
public BigBoss(int maxHP, int reward) {
currentBossHP = maxHP;
this.reward = reward;
}
protected void dieInVain() {
 // ...
}
public void takeDamage(int dmg) { dieInVain(); }
}


Ich habe schon etwas rumprobiert. Weiß aber nicht so recht, wie ich was umstrukturieren kann...

Java:
Public abstract class Spielfiguren {
private int currentHp;
public int getcurrentHP(){
return currentHP;
}


public class GoodGuy extends Spielfiguren {
public GoodGuy(int maxHP) {
currentGuyHP = maxHP;
}
protected void respawn() {
// ...
}
}


public class BigBoss extends Spielfiguren {
public BigBoss(int maxHP, int reward) {
currentBossHP = maxHP;
this.reward = reward;
}
protected void dieInVain() {
 // ...
}
}
}


Wäre sehr dankbar für eine Erklärung.
Gruß
Alex
 
Eine Möglichkeit wäre so etwas:

Java:
abstract class Character{
	
	private int currentHP;

	
	public Character(int maxHP){		
		this.currentHP = maxHP;
	}
	
	public abstract void takeDamage(int dmg);
}

class GoodGuy extends Character{

	public GoodGuy(int maxHP) {
		super(maxHP);		
	}

	protected void respawn(){
		
	}
	
	@Override
	public void takeDamage(int dmg) {
		respawn();		
	}
}

class BigBoss extends Character{
		private int reward;
	
	public BigBoss(int maxHP, int reward) {
		super(maxHP);
		this.reward = reward;
	}

	@Override
	public void takeDamage(int dmg) {
		dieInVain();		
	}
	
	protected void dieInVain(){
		
	}	
	
}

Ich weiß jetzt leider nicht, womit du dich schon beschäftigt hast, deswegen wären konkrete Fragen hilfreich.
 

Zurück
Oben