package generic;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class Instends {
public static void test1(){
//一、泛型中的可以值继承
//1、直接赋值测试
List<Object> l1=new ArrayList<Object>();
l1.add("aa");
l1.add("bb");
for (int i = 0; i < l1.size(); i++) {
System.out.print(l1.get(i)); //result:aabb
}
//2、方法参数测试
test2(l1); //result:aabb
//二、泛型中不可以使用声明继承:如果Foo是Bar的一个子类型(子类或者子接口),而G是某种泛型声明,那么G<Foo>是G<Bar>的子类型并不成立!!
// 1、直接赋值测试
List<String> l2=new ArrayList<String>();
//List<Object> l3=l2;//type mismatch,cannot convert List<String> to List<Ojbect>
/**
* 分析原因如下:
* l3.add(new Object());
* String s = l2.get(0); // 试图把Object赋值给String,这肯定是错误的。
*
*/
//2、方法参数测试:与第三种情况类似,声明继承是无效的。
List<String> l4=new ArrayList<String>();
l4.add("aa");
//test2(l4); compile error
}
public static void test2(List<Object> arg){
for( Object o:arg){
System.out.print(o);
}
}
}
分享到:
相关推荐
《Java解惑(中文版)》是一本专为Java初学者设计的学习资料,旨在帮助读者解答在学习Java过程中遇到的各种困惑。"solve65p"可能代表这本书包含65个问题或主题,每个都深入浅出地进行了讲解,旨在解决初学者在编程...
Java编程语言是世界上最流行的开发平台之一,广泛应用于企业级应用、...通过深入学习和理解这些Java知识点,并结合"Java解惑.pdf"文档中的实例和解决方案,开发者可以更好地解决实际开发中遇到的问题,提升编程技能。
3. **继承**:一个类继承另一个类,获取其属性和方法,实现代码复用。 4. **多态**:同一接口,不同实现,提供了灵活的扩展性和可维护性。 5. **抽象类与接口**:抽象类用于定义通用特性,接口则用于规范行为。 6. *...
《Java解惑》是一本专为Java初学者和进阶者设计的指南,旨在帮助读者解决在学习和实践中遇到的各种问题。这本书深入浅出地解析了Java编程中的常见困惑,涵盖了语言基础、类库应用、多线程、网络编程、异常处理、内存...
- 类与对象:Java是一种面向对象的语言,理解类的定义、对象的创建以及封装、继承和多态是学习Java的基础。 - 数据类型:Java分为基本数据类型和引用数据类型,理解它们的区别和用法至关重要。 - 控制流:包括...
一个类只能继承一个抽象类,但可以实现多个接口。 4. **异常处理**:Java的异常处理机制通过`try-catch-finally`块实现,理解如何正确地捕获和处理异常是编写健壮代码的关键。 5. **集合框架**:ArrayList与...
《JAVA解惑》是一本专为Java初学者和开发者设计的电子书,旨在解决他们在学习和实践Java过程中遇到的各种疑惑。这本书深入浅出地讲解了Java编程语言的关键概念和技术,帮助读者建立扎实的基础,并提升解决问题的能力...
"Java解惑"这个主题,显然旨在帮助开发者解决他们在学习和实践中遇到的问题。在Java的世界里,疑惑可能涵盖语法、类库、框架、并发、内存管理等多个方面。下面,我们将深入探讨一些常见的Java解惑知识点。 1. **...
《JAVA解惑》这本书无疑是Java开发者的一份宝贵资源,它涵盖了从初级到高级的各种Java编程问题,旨在帮助读者深入理解这个强大的编程语言。在阅读这本书的过程中,你可以期待学习到以下关键知识点: 1. **Java基础...
"Java解惑(中文)"很可能是一个专门针对初学者和有一定经验的开发者设计的资源,旨在帮助他们解决在学习和实践中遇到的问题。这个压缩包文件包含了一个名为"Java解惑(中文).pdf"的PDF文档,很可能提供了详细的知识...
《JAVA解惑》是Java开发者领域的一本经典著作,它被广大编程爱好者称为Java四大名著之一,旨在解决初学者及有一定经验的开发者在学习和使用Java过程中遇到的各种困惑。这本书深入浅出地讲解了Java语言的核心概念和...
7. **数组**:一维、二维数组的声明、初始化和操作。 8. **方法**:定义、调用和参数传递。 9. **面向对象编程**:封装、继承、多态的基本概念。 10. **继承和多态**:子类继承父类,实现多态性。 11. **抽象类和...
在Java编程语言的世界里,"Java解惑"很可能是一份旨在帮助开发者解决常见问题和误解的文档。这个标题暗示了这份PDF可能包含了对Java中一些复杂或者易混淆概念的清晰解释,通过解答一些编程谜题,帮助程序员们纠正...
4. **面向对象编程**:Java是纯面向对象的语言,封装、继承和多态是其三大特性。书中可能深入解析这些概念,包括如何设计良好的类结构,如何有效利用接口,以及如何实现多态性。 5. **集合框架**:Java集合框架包括...
《JAVA解惑》可能是一本旨在帮助Java开发者解决常见问题和困惑的书籍。书名中的“解惑”表明它可能包含了一些深入的解释、技巧和最佳实践,帮助读者理解和解决在编程过程中遇到的问题。以下是几个可能涵盖的知识点:...
- **多态**:一个接口可以有多种不同的实现,是Java中实现动态绑定的关键。 - **接口**:接口定义了一组方法,但不提供具体实现,用于实现多重继承。 3. **异常处理** - **异常**:在程序运行时可能出现的错误,...
以下是一些基于“JAVA面试题解惑系列”可能涵盖的Java编程核心概念和技术的详细解释: 1. **基础语法**:Java的基础包括变量、数据类型(如整型、浮点型、字符型、布尔型)、运算符(算术、比较、逻辑、位操作符)...
- 继承:一个类可以继承另一个类的属性和方法,实现代码复用。 - 多态:同一行为在不同对象上有不同的表现形式,是Java中实现动态绑定的关键。 3. **内存管理与垃圾回收**: - 分区模型:了解堆、栈、方法区等...