В зависимости от различий между классами, это можно сделать только с одним MainCharacter class
и различными фабричными методами для каждого класса.
например, настроить класс MainCharacter следующим образом:
public class MainCharacter{
public int health;
public int damage;
// etc.
public static MainCharacter buildMage(){
health = 5;
damage = 20;
// etc.
}
public static MainCharacter buildAssassin(){
health = 10;
damage = 10;
// etc.
}
public static MainCharacter buildMage(){
health = 20;
damage = 5;
// etc.
}
}
, затем создайте MainCharacter следующим образом:
switch (answer) {
case 1:
{
adv.print("you are a mage");
MainCharacter main_character = MainCharacter.buildMage();
break;
}
case 2:
{
adv.print("you are an assasin");
MainCharacter main_character = MainCharacter.buildAssassin();
break;
}
case 3:
{
adv.print("you are a fighter");
MainCharacter main_character = MainCharacter.buildFighter();
break;
}
ПРИМЕЧАНИЕ. Это уменьшает количество классов, которые вы должны создать, однако это уместно, только если различия между классами просто разныеначальная статистика.Если разные классы на самом деле имеют разные методы, тогда потребуется наследование.