首页 > 解决方案 > 将实现接口的某个类的对象分配给接口类型

问题描述

标题有点长,所以我将使用一些代码来解释我的问题:

假设我有一个实现接口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 方法?

标签: javaoop

解决方案


您可以像这样将对象转换为类类型:

 this.managingTeam = (Team)team;

在这种情况下,Teal 类的所有方法都将可用。但首先你应该更好地检查团队实例是否团队


推荐阅读