我開始開發我的第一個Java項目,這是一種基本的角色扮演遊戲。我想創建一個角色。抽象類的子類的Java構造函數
首先我要解釋一些事情:
Game
類 - 獲取字符類輸入(如戰鬥機)。Character
- 擁有所有的字符數據。CharacterClass
- 抽象類,包含每個字符類的信息(如Fighter
)。Fighter
(和其他類)擴展了抽象類CharacterClass
,應設置所選字符類的初始統計信息(如Fighter
)。
我想要做的是選擇Game
字符類(讓我們假設我選擇Fighter
),並通過displayStats
得到所有的統計數據。當角色選擇一個班級時,Game
應該調用類似於:Chracter ch = new Character(name, scan)
,然後ch.displayCharacter
。
我的問題是Fighter
的構造函數並將此數據分配給Character
的構造函數。
public class Game {
public static void main(String[] args) {
System.out.println("Choose a character: ");
System.out.println("1. Fighter");
System.out.println("2. Rogue");
System.out.println("3. Mage");
System.out.println("4. Cleric");
Scanner sc = new Scanner(System.in);
int scan = sc.nextInt();
System.out.println("Character Class: " + CharacterUtil.getCharacterClass(scan));
System.out.println("Choose Name:");
Scanner nameIn = new Scanner(System.in);
String name = nameIn.next();
System.out.println("Name: " + name);
}
}
public class Character {
private String name;
private String characterClass;
private int level;
private int hp;
private int currentHp;
private long xp;
/*private int BAB; /*Base attack bonus*/
private int strength;
private int constitution;
private int dexterity;
private int intelligence;
private int wisdom;
private int charisma;
Character(String name, String chracterClass){
this.name = name;
this.characterClass = chracterClass;
level = ;
hp = ;
currentHp = hp;
xp = 0;
strength = ;
constitution = ;
dexterity = ;
intelligence = ;
wisdom = ;
charisma = ;
}
void displayCharacter(){
System.out.println("Name: " + name);
System.out.println("Level: " + level);
System.out.println("Class: " + characterClass);
System.out.println("HP: " + hp);
System.out.println("Attributes: ");
System.out.println("Strength: " + strength);
System.out.println("Constitution: " + constitution);
System.out.println("Dexterity: " + dexterity);
System.out.println("Intelligence: " + intelligence);
System.out.println("Wisdom: " + wisdom);
System.out.println("Charisma: " + strength);
System.out.println("XP: " + xp);
}
}
abstract class CharacterClass {
private int level;
private int hp;
private int strength;
private int constitution;
private int dexterity;
private int intelligence;
private int wisdom;
private int charisma;
CharacterClass(){
level = 1;
hp = 10;
strength = 10;
constitution = 10;
dexterity = 10;
intelligence = 10;
wisdom = 10;
charisma = 10;
}
class Fighter extends CharacterClass {
Fighter(){
super.level = 1;
super.hp = 10;
super.strength = 16;
super.constitution = 14;
super.dexterity = 14;
super.intelligence = 10;
super.wisdom= 10;
super.charisma = 10;
}
}
你能給我們提供關於這個問題的更多細節嗎?我不明白你的意思是「我的問題是戰士的構造函數,並將這些數據分配給角色的構造函數。」 – RustyTheBoyRobot