Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Foo的实现类可以被称为Foo的扩展类吗?_Java_Generics_Extends_Interface Implementation - Fatal编程技术网

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());
}