Java编程基础:类与继承及泛型应用

需积分: 0 0 下载量 139 浏览量 更新于2024-08-04 收藏 34KB DOCX 举报
在本篇文档中,主要讨论了Java编程语言的基础概念,特别是类(Class)和泛型(Generics)的使用。首先,我们从基础语法开始,通过一个简单的例子来理解类的声明与实例化。 1. **声明和初始化类对象**: 语句`Classclz = null;`的含义是声明一个`Class`类型的变量`clz`并将其初始化为`null`。这表示clz尚未指向任何具体的类。 2. **类的继承和类型引用**: - 类`GeometricObject`是基类,`PolyGon`和`Rectangle`是它的子类。 - 要声明一个可以指向`PolyGon`及其子类类型的引用,应使用泛型`Class<? extends PolyGon>`,因为这样保证了引用只指向`PolyGon`或其派生类,如`(1)`所示。 - `System.out.println(o.getClass().getSimpleName());`会输出`Rectangle`,因为`o`是`Rectangle`对象,所以返回的是`Rectangle`的简单名称。 3. **泛型限制和错误分析**: - `Class<PolyGon> clz3 = null; clz3 = PolyGon.class;`是正确的,因为`clz3`被限定为`PolyGon`类型。 - 错误在于`clz3 = Rectangle.class;`(题号2),因为`Rectangle`不是`PolyGon`的直接子类,违反了泛型的限定。 - `Class<? extends PolyGon> clz4 = null; clz4 = GeometricObject.class;`错误,因为`GeometricObject`不是`PolyGon`的子类,违背了泛型限制。 - 同理,`clz4 = PolyGon.class;`和`clz4 = Rectangle.class;`也是错误的,因为它们没有遵循泛型限制。 4. **ArrayList 的实例化错误**: 在Java中,创建`ArrayList`实例时,类型参数必须明确指定。错误的用法有: - `(2)`尝试创建一个`ArrayList`,但类型参数`"String"`是字符串,而非类型,会导致编译错误。 - `(3)`尝试将`ArrayList<String>`初始化为一个非字符串类型的对象,同样会导致错误。 总结来说,这部分文档重点讲解了Java中的类定义、继承关系、泛型的应用以及基本类型错误的识别,这些都是Java编程中基础且重要的概念。理解和熟练掌握这些知识点对于编写更健壮和灵活的代码至关重要。