在Java中,是否存在某种类似于Interface的接口,可以强制其实现类具有特定的字段
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Java中,是否存在某种类似于Interface的接口,可以强制其实现类具有特定的字段,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1290字,纯文字阅读大概需要2分钟。
内容图文
![在Java中,是否存在某种类似于Interface的接口,可以强制其实现类具有特定的字段](/upload/InfoBanner/zyjiaocheng/678/65294b0d1f8a4ddfaa58ed130ca36c5c.jpg)
我了解到Java不允许在Interface中使用实例字段,但我确实需要此功能.
我正在学习创建我的第一个游戏.我的游戏中有不同类型的演员,例如英雄(由玩家控制),老板,佳能等等.
不管它们是哪种类型,我都希望每个参与者都从基类Model继承,该基类将一些字段赋予其子类,例如位置,宽度和高度,以使Model的每个子类都可以与MVC模式中的Controller和Renderer关联.
public class Model {
//position
public float x;
public float y;
public float width;
public float height;
}
顺便说一句,我原本希望英雄和老板是可以死亡的实体,所以我希望它们是生命的实例,被强制具有例如公共浮动命中点;相反,作为一个领域,加农炮不是生命,因为它将是不朽的实体.因此,我尝试:
public interface Life {
public float hitPoint;
}
并期望
public class Hero extends Model implements Life {...}
本质上将具有hitPoint.但是后来我了解到,Java中不允许接口中的实例字段,并且它也不支持多重继承.
是否可以用Java实现上述设计.
解决方法:
在接口中只能声明常量.
如果命中点值永远不会改变,那么您在接口中定义的任何内容始终都是public static final(除了课程方法是公共抽象之外),否则此设计将为您工作.
更好的解决方案是
public interface Life {
//methods that implementation of this interface should implement
}
public abstract LifeForm extends Model implements Life {
int hitPoints;
//other LifeForm specific methods and instance variables
}
public Hero extends LifeForm {
//Hero specific methods like save the damsel
}
内容总结
以上是互联网集市为您收集整理的在Java中,是否存在某种类似于Interface的接口,可以强制其实现类具有特定的字段全部内容,希望文章能够帮你解决在Java中,是否存在某种类似于Interface的接口,可以强制其实现类具有特定的字段所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。