谁能告诉我作业 l4 和 l5 是否正确,为什么?例如
ArrayList
和 List
实现 Serializable
界面。
ArrayList<String> list1 = new ArrayList<String>();
ArrayList<? super Serializable> l4 = list1 ;
ArrayList<Serializable> l5 = list1 ;
String
是一个实现 Serializable
的类接口(interface),那么 String 被称为“Serializable
的子类型”或“Serializable
的类型”?
谢谢
最佳答案
两者都不正确。
第 4 行将无法运行,因为 String
不是 Serializable
的父类(super class)型,它是一个子类型。
第 5 行将不起作用,因为 ArrayList<String>
不是 ArrayList<Serializable>
的子类型.
虽然这会起作用:
ArrayList<? extends Serializable> l6 = list1; // because String implements Serializable
List<String> l7 = list1; // because ArrayList implements List
List<? extends Serializable> l8 - list1; // both of the above
关于java - 实现接口(interface)的类的类型是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7109115/