Java Foo的实现类可以被称为Foo的扩展类吗?
这个问题一直困扰着我;下面是一个例子 接口类: 实现类:Java Foo的实现类可以被称为Foo的扩展类吗?,java,generics,extends,interface-implementation,Java,Generics,Extends,Interface Implementation,这个问题一直困扰着我;下面是一个例子 接口类: 实现类: 因此,我将调用实现UserInterface的任何实例,如下所示: 另一个远程类中的某些任意函数: public void show昵称(T用户){ system.out.println(user.make_昵称()); } T用于表示UserInterface的(通用)实现类 但在这里我称之为,据我所知,这意味着T是用户界面的子类(而不是实现类) 这是调用UserInfo实例的合法语法吗? 不知怎么的,上面的代码似乎对我有用 欢
因此,我将调用实现
UserInterface
的任何实例,如下所示:
另一个远程类中的某些任意函数:
public void show昵称(T用户){
system.out.println(user.make_昵称());
}
T
用于表示UserInterface
的(通用)实现类但在这里我称之为
,据我所知,这意味着T是用户界面的子类(而不是实现类)
这是调用UserInfo
实例的合法语法吗?
不知怎么的,上面的代码似乎对我有用
欢迎提供任何反馈。如中所述:
在泛型上下文中,extends在一般意义上用于表示
“扩展”(如在类中)或“实现”(如在接口中)
如报告中所述:
在泛型上下文中,extends在一般意义上用于表示
“扩展”(如在类中)或“实现”(如在接口中)
我怀疑使用关键字extends
是为了避免在语言语法中添加另一个表示“extends或implements”的关键字。添加关键字不利于向后兼容,因为如果您使用某人用作变量/方法/类/等名称的单词,那么他们的代码将在新版本中停止工作。向后兼容性是Java语言更改的明确目标。我怀疑使用关键字extends
是为了避免在语言语法中添加另一个表示“extends或implements”的关键字。添加关键字不利于向后兼容,因为如果您使用某人用作变量/方法/类/等名称的单词,那么他们的代码将在新版本中停止工作。向后兼容性是Java语言更改的明确目标。谢谢。在上传问题之前应该做更多的研究。无论如何,我省了很多麻烦。谢谢你!谢谢在上传问题之前应该做更多的研究。无论如何,我省了很多麻烦。谢谢你!
public interface UserInterface{
public String make_nickname();
}
public class UserInfo implements UserInterface{
private String name;
private String nickname;
public String make_nickName(){
this.nickname = this.name + "ish";
return this.nickname;
}
}
public void showNickName(<T extends UserInterface>T user){
system.out.println(user.make_nickname());
}