Для моего проекта в семестре мы с моей командой должны сделать файл .jar (библиотека, не выполняемый), который содержит структуру разработки игр и демонстрирует концепции ООП. Предполагается, что она будет РАМКАМИ, и другая команда должна использовать наши рамки и наоборот. Поэтому я хочу знать, как нам следует начинать. Мы думали, что несколько подходов:
1. Начните с простого классаАбстрактный базовый класс или класс?
public class Enemy {
public Enemy(int x, int y, int health, int attack, ...) {
...
}
...
}
public class UserDefinedClass extends Enemy {
...
}
2. Пуск с абстрактным классом, определяемые пользователем враги должны наследовать абстрактные элементы
public abstract class Enemy {
public Enemy(int x, int y, int health, int attack, ...) {
...
}
public abstract void draw();
public abstract void destroy();
...
}
public class UserDefinedClass extends Enemy {
...
public void draw() {
...
}
public void destroy() {
...
}
}
3. Создать super ABC (абстрактный базовый класс), которые ВСЕ наследуют от
public abstract class VectorEntity {
...
}
public abstract class Enemy extends VectorEntity {
...
}
public class Player extends VectorEntity {
...
}
public class UserDefinedClass extends Enemy {
...
}
Что следует использовать? Или есть лучший способ?
Существует также «Эффективная Java», которая более применима в этом случае. В нем говорится что-то подобное, но с вещами, более специфичными для Java - например, как 'equals()' не работает совершенно правильно при смешивании производных типов и базовых типов, если базовые классы не являются абстрактными. –