java - 将实现接口的某个类的对象分配给接口类型
问题描述
标题有点长,所以我将使用一些代码来解释我的问题:
假设我有一个实现接口ManageableTeam的类“团队”。 ManagedTeam有以下方法:
public boolean isPlayerRegistered(FootballPlayer player);
public boolean registerPlayer(FootballPlayer player);
public void setFormation(Formation formation);
- 在课堂团队中,我已经覆盖了上述方法,但我还有其他一些方法,例如:
public boolean isPlayerReady(FootballPlayer player)
;
- 现在,如果在其他课程中,我有以下字段:
ManageableTeam managingTeam;
和方法:
public void setManagingTeam (ManageableTeam team){
this.managingTeam = team;
}
- 将类 Team 的对象分配给 ManageableTeam 类型的对象是否会生成一个只能使用在接口 ManageableTeam 中声明的 3 个方法的对象?
就像 ManageableTeam 一样,managementTeam = new Team(); 创建一个只能使用接口 ManageableTeam 中声明的方法而不是接口中未声明的方法的对象,例如 isPlayerReady 方法?
解决方案
您可以像这样将对象转换为类类型:
this.managingTeam = (Team)team;
在这种情况下,Teal 类的所有方法都将可用。但首先你应该更好地检查团队实例是否团队
推荐阅读
- python - 如何为多次出现的分隔字符串编写正则表达式
- c# - 来自 Reflection.Emit 派生类的系统字段访问异常
- events - IronPyhton System.MissingMemberException 对象没有属性“ChangeType”
- abap - 我可以使用 line_exists 检查初始值或不相等值吗?
- elasticsearch - ElasticSearch:原子批量更新
- angular - 导航到另一个页面后,离子组件不会被破坏
- linux - 带有 backslah 的 sed 命令的语法是什么?
- python - 正则表达式搜索多个后缀
- javascript - 获取数字进行比较的特殊方法
- java - scala/java 中的异常