使用方法创建超类

乔·坦努里

我想知道我是否可以使我的工作更聪明我有2节课:

敌人阶级(任何敌人的超阶级):

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

无论如何,谢谢你。

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

根据您在这些循环体内执行的操作的性质,您可能会使用“模板方法”设计模式。想法是将循环放入基础方法中,并引入abstract执行循环的单个步骤的一种方法,如下所示:

public abstract class Enemy {
    ...
    public void render() {
        if(firstEnemy) {
            for(int i =  0; i > x.size(); i++) {
                doRender(i);
            }
        }
    }
    public abstract void doRender(int i);
}

public class E0 extends Enemy {
    ...
    public abstract void doRender(int i) {
        ... // Do the work for a single step of the loop in E0
    }
}
public class E1 extends Enemy {
    ...
    public abstract void doRender(int i) {
        ... // Do the work for a single step of the loop in E1
    }
}
... // And so on

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用方法创建超类

来自分类Dev

Python创建类和使用方法

来自分类Dev

使用方法或类创建文本框

来自分类Dev

对空类使用方法

来自分类Dev

使用方法创建对象

来自分类常见问题

我可以使用超类的类工厂静态方法创建子类实例吗?

来自分类Dev

使用方法在python中创建一个类。以下说明

来自分类Dev

使用方法依赖测试 util 类

来自分类Dev

如何使用返回类型作为超类的任何子类型创建方法

来自分类Dev

Java:如何使用超类的静态方法从其创建子类的实例

来自分类Dev

使用Println显示超类方法的结果

来自分类Dev

使用Println显示超类方法的结果

来自分类Dev

超类和子类——方法使用

来自分类Dev

如何使超类中的方法创建子类对象?

来自分类Dev

在Java中的超类方法中创建新的子类

来自分类Dev

如何使用超类的构造函数创建子类的实例

来自分类Dev

为什么我只使用子类创建超类的属性

来自分类Dev

使用继承为太阳和行星创建超类SunPlanet。

来自分类Dev

在JavaScript中使用“ this”使用方法创建对象

来自分类Dev

从超类的超类调用方法

来自分类Dev

声明后使用方法扩展类功能

来自分类Dev

使用方法重载处理违反“ Liskov替换原理”的类

来自分类Dev

使用方法作为事件监听器而不是类

来自分类Dev

在派生类中不使用方法

来自分类Dev

在ruby类中使用方法进行迭代

来自分类Dev

如何在类中使用方法或执行语句

来自分类Dev

如何使用方法“包含”?类Mongoid :: Criteria的类别?

来自分类Dev

在jQuery中使用方法RemoveClass之后如何添加类

来自分类Dev

多次使用方法时,请跟踪类中的变量

Related 相关文章

热门标签

归档