另一个继承类中的继承类

梅迪根

我在Java中有继承问题。我将以陆军为例:我有一个班级基础:

public class Soldier {
    Squad squad;

    public Soldier(Squad _squad) {
        squad = _squad;
    }
    //and some methods, that use squad 
}

我有:

public class Archer extends Soldier {
    public Archer(ArcherSquad _squad) {
        super(_squad);
    }
    //some new methods, some override 
}

和:

public class Warrior extends Soldier {
    public Warrior(WarriorSquad _squad) {
        super(_squad);
    }
    //some new methods, some override 
}

我的小队看起来像:

Squad;
ArcherSquad extends Squad(some new methods);
WarriorSquad extends Squad(some new methods);

现在我想访问方法ArcherSquadArcher如何更改代码而又不中断任何内容?

扎普尔

您可以将对小队的参考上移至 ArcherSquad

public abstract class Soldier {
    // force subclass supply some squad
    protected abstract Squad getSquad();
    public void someMethod() {
        Squad squad = getSquad();
        // do something with it.
    }
}

public class Archer extends Soldier {
    private ArcherSquad archerSquad;
    public Archer(ArcherSquad _squad) {
        archerSquad = _squad;
    }
    @Override
    protected Squad getSquad() {
        return archerSquad;
    }
    ...
}

或者你可以Soldier变成一个通用类

public class Soldier<T extends Squad> {
    protected T squad;

    public Soldier(T _squad) {
        this.squad = _squad;
    }

    public void someMethod() {
        Squad squad = this.squad;
        // do something with it.
    }
}

public class Archer extends Soldier<ArcherSquad> {

    public Archer(ArcherSquad _squad) {
        super(_squad);
    }

    public void someMethodUsingArcherSquad() {
        ArcherSquad as = squad;
    }
    // some new methods, some override
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

可以抽象类继承另一个抽象类C#

来自分类Dev

是否可以使匿名类继承另一个类?

来自分类Dev

一个类如何从另一个类继承?

来自分类Dev

我如何使一个类(已经存在)继承另一个类?

来自分类Dev

扩展已经继承了另一个类的类

来自分类Dev

从继承另一个类的类中获取变量

来自分类Dev

从另一个QObject类访问QObject继承的类

来自分类Dev

从另一个类和ActiveRecord :: Base继承

来自分类Dev

调整来自QT中从QWindow继承的另一个类的事件的大小

来自分类Dev

显示继承的子类与继承之外的另一个类之间的多重性

来自分类Dev

将继承的类更改为保留属性的另一个继承的类

来自分类Dev

从继承自另一个类的类中获取数据

来自分类Dev

如何从Python中另一个类的方法继承变量

来自分类Dev

从另一个类继承的类中的异常“ object .__ init __()恰好接受一个参数”

来自分类Dev

从另一个python类'继承'@property

来自分类Dev

如何使一个类既实现接口又从另一个类继承

来自分类Dev

在另一个类中创建对象(无继承)

来自分类Dev

如何将Java类(从一个包中)继承到另一个类(在另一个包中)

来自分类Dev

继承的类可以覆盖另一个继承的类的虚函数吗?

来自分类Dev

从另一个类发送一个类进行继承

来自分类Dev

如何使一个继承自python中另一个类的类的构造函数?

来自分类Dev

从另一个类和ActiveRecord :: Base继承

来自分类Dev

显示继承的子类与继承之外的另一个类之间的多重性

来自分类Dev

如何使用继承从C#中的另一个类进行调用和对象

来自分类Dev

在OrientDB中,如何判断Java API中一个类是否继承自另一个类?

来自分类Dev

继承一个类,该类继承了另一个已经包含的类

来自分类Dev

如何判断一个类是否继承自另一个类?

来自分类Dev

创建为实例后,一个类如何从另一个类继承

来自分类Dev

如何将另一个类的函数继承到 kotlin 中的活动中?

Related 相关文章

  1. 1

    可以抽象类继承另一个抽象类C#

  2. 2

    是否可以使匿名类继承另一个类?

  3. 3

    一个类如何从另一个类继承?

  4. 4

    我如何使一个类(已经存在)继承另一个类?

  5. 5

    扩展已经继承了另一个类的类

  6. 6

    从继承另一个类的类中获取变量

  7. 7

    从另一个QObject类访问QObject继承的类

  8. 8

    从另一个类和ActiveRecord :: Base继承

  9. 9

    调整来自QT中从QWindow继承的另一个类的事件的大小

  10. 10

    显示继承的子类与继承之外的另一个类之间的多重性

  11. 11

    将继承的类更改为保留属性的另一个继承的类

  12. 12

    从继承自另一个类的类中获取数据

  13. 13

    如何从Python中另一个类的方法继承变量

  14. 14

    从另一个类继承的类中的异常“ object .__ init __()恰好接受一个参数”

  15. 15

    从另一个python类'继承'@property

  16. 16

    如何使一个类既实现接口又从另一个类继承

  17. 17

    在另一个类中创建对象(无继承)

  18. 18

    如何将Java类(从一个包中)继承到另一个类(在另一个包中)

  19. 19

    继承的类可以覆盖另一个继承的类的虚函数吗?

  20. 20

    从另一个类发送一个类进行继承

  21. 21

    如何使一个继承自python中另一个类的类的构造函数?

  22. 22

    从另一个类和ActiveRecord :: Base继承

  23. 23

    显示继承的子类与继承之外的另一个类之间的多重性

  24. 24

    如何使用继承从C#中的另一个类进行调用和对象

  25. 25

    在OrientDB中,如何判断Java API中一个类是否继承自另一个类?

  26. 26

    继承一个类,该类继承了另一个已经包含的类

  27. 27

    如何判断一个类是否继承自另一个类?

  28. 28

    创建为实例后,一个类如何从另一个类继承

  29. 29

    如何将另一个类的函数继承到 kotlin 中的活动中?

热门标签

归档