Есть следующий код
public interface Archer {
public double shoot();
public void damage(int damage);
public void health();
}
public interface Warrior {
public double attack();
public void damage(int damage);
public void health();
}
public class ElfArcher implements Archer {
public int heals = 100;
public boolean ellitGroup = false;
public double shoot() {
if(ellitGroup == true)
return 5*1.5;
else return 5;
}
public void damage(int damage) {
this.heals -= damage;
}
public void health() {
System.out.println("остаток здоровья" + this.heals);
}
}
public class ElfWarrior implements Warrior {
public int heals = 100;
public boolean ellitGroup = false;
public double attack() {
if(ellitGroup == true)
return 15*1.5;
else return 15;
}
public void damage(int damage) {
this.heals -= damage;
}
public void health() {
System.out.println("остаток здоровья" + this.heals);
}
}
public class ElfSquad {
ArrayList squad = new ArrayList();
Archer arc1,arc2,arc3;
Warrior war4,war5,war6,war7;
public ElfSquad() {
}
public Archer createArcher() {
return new ElfArcher();
}
public Warrior createWarrior() {
return new ElfWarrior();
}
public ArrayList createSquad() {
squad.add(createArcher());
squad.add(createArcher());
squad.add(createArcher());
squad.add(createWarrior());
squad.add(createWarrior());
squad.add(createWarrior());
squad.add(createWarrior());
return squad;
}
public void atackedEnemySquad(int who, int damage) {
}
}
public class Main {
public static void main(String[] args) {
ElfSquad squadAliance = new ElfSquad();
ArrayList test = squadAliance.createSquad();
test.get(0).shoot();
test.get(1).damage(15);
test.get(2).damage(24);
test.get(3).health();
test.get(3).attack();
}
}
Как вызвать методы из интерфейсов shoot(), attack(),damage(),health() следующим образом
test.get(0).shoot();
test.get(4).attack();
test.get(4).health();
Или предложите другой способ его вызвать.
Вам необходим общий интерфейс с необходимыми вам методами от которог унаследованы другие интерфейсы, после этого вы можете писать классы реализовывая эти интерфейсы и тогда можно будет при проходе в цикле или еще где либо вызывать этот метод. Может я не очень понятно объясняю, тогда вам лучше почитать про полиморфизм и наследование.
interface IBase{
void common();
}
interface IA extends IBase{
void sayA();
}
interface IB extends IBase{
void sayB();
}
class A implements IA{
public void common() {
System.out.println("Common A");
}
public void sayA() {
System.out.println("Say A");
}
}
class B implements IB{
public void common() {
System.out.println("Common B");
}
public void sayB() {
System.out.println("Say B");
}
}
public class Launch {
public static void main(String[] args) {
List<IBase> list = new ArrayList<IBase>();
list.add(new A());
list.add(new A());
list.add(new A());
list.add(new A());
list.add(new A());
list.add(new B());
list.add(new B());
list.add(new B());
list.add(new B());
list.add(new B());
for (IBase base : list) {
base.common();
}
list.get(0).common();
list.get(7).common();
}
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Подскажите самые простые из существующих методов защиты для скрытия (шифровки, нечитаемости и пр) хотябы одного файла strings
В приложении при каждом запуске я гружу расписание занятий сервера и кладу его в бд RealmНо при каждом перезапуске приложения память увеличивается...