java - 抽象代码和通用代码之间的区别

标签 java generics abstract

在 Java 的情况下,“抽象”和“通用”代码之间有什么区别?两者的意思相同吗?

最佳答案

抽象和泛型在 Java 语法和语义上是完全不同的东西。

abstract是一个关键字,表示一个类没有完整的实现,所以不能实例化。

例子:

abstract class MyClass {
  public abstract void myMethod();
}

MyClass 包含方法定义'public abstract void myMethod()',但没有指定实现——实现必须由子类提供,通常称为具体子类,所以抽象类定义了一个接口(interface),也许有一些实现细节。

泛型的使用表明类的各个方面都可以参数化。我发现最容易理解的示例是在 Java Collections API 中。

例如List<String>可以读作“字符串类型的对象列表”。 List<Integer>是同一个 List 接口(interface),但只接受 Integer 类型的对象。

在 Collections API 中,它为集合提供类型安全,否则需要样板来检查类型并进行适当的转换。

关于java - 抽象代码和通用代码之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1219893/

相关文章:

Java继承: "Casting" variable in abstract class as static

java - 有人使用 Eclipse/Maven 的 JRuby 测试框架吗?

java - 如何使方法返回类型通用?

Java:如何将 List<?> 转换为 Map<String,?>

C++“无法将参数声明为抽象类型

c++ - 多重继承冲突

java - 使用正则表达式将句子拆分为单词,其中单词还包含多个空格

java - 从 tomcat 取消部署 Web 应用程序不会删除已部署的目录

java - 仅在创建新文件时删除 .dat 文件

java - 如果我使用与泛型方法中使用的类型参数占位符 'X' 相同的类名 'X',哪个 X 有效?