java制作一个包含方法的超类
我想知道我是否能让我的作品更智能。我有两门课:
敌人类(任何敌人的超类):
package com.joetannoury.game.entity.enemy;
/**
* Enemy's superclass!
*
* @author Joe Tannoury
*/
public abstract class Enemy {
public Enemy(int EnemyID, float x, float y) {
}
public abstract void update(int delta);
public abstract void render();
}
敌人类(敌人的子类):
package com.joetannoury.game.entity.enemy;
import java.util.ArrayList;
/**
* This is an subclass of Enemy!
*
* @author Joe Tannoury
*/
public class E0 extends Enemy {
private ArrayList<Float> x = new ArrayList<>();
private ArrayList<Float> y = new ArrayList<>();
private ArrayList<Float> rotation = new ArrayList<>();
private boolean firstEnemy = false;
public E0(float x, float y) {
super(0, x, y);
this.x.add(x);
this.y.add(y);
this.rotation.add(0.0f);
}
@Override
public void update(int delta) {
if(firstEnemy) {
for(int i = 0; i > x.size(); i++) {
}
}
}
@Override
public void render() {
if(firstEnemy) {
for(int i = 0; i > x.size(); i++) {
}
}
}
}
所以,我的问题是,我能在超类中做些什么,这样我就不需要在子类中反复设置for()循环了吗?我真的不明白抽象类的含义,所以如果你认为它不应该是抽象类,你能这么好地告诉我为什么吗D
不管怎样,谢谢你
# 1 楼答案
根据您在这些循环体中所做的事情的性质,您可能会使用Template Method设计模式。我们的想法是将循环放在基础中的一个方法中,并引入一个不同的
abstract
方法来执行循环的单个步骤,如下所示: