Java中子类对象的特点测试代码清单.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
在Java编程语言中,子类对象具有独特的特性和行为,这些特性主要体现在继承、封装和多态性等方面。以下是对标题“Java中子类对象的特点测试代码清单”和描述中的内容进行的详细解释。 子类是父类的扩展,它能够继承父类的非私有属性和方法。在给出的代码示例中,`Chinese` 类是 `People` 类的子类,这表明 `Chinese` 可以访问并使用 `People` 类中声明的非私有成员。在 `People` 类中有一个私有变量 `averHeight`,表示平均身高,而 `Chinese` 类则声明了一个自己的实例变量 `height`,表示个人身高。 在 `Chinese` 类中,我们看到 `getHeight()` 和 `setHeight(int height)` 方法,这些方法用于获取和设置 `height` 变量的值。值得注意的是,子类并没有直接继承 `averHeight`,这意味着在 `Chinese` 对象中无法直接访问或修改这个父类的私有变量。在 `setHeight()` 方法中尝试对 `height` 赋值时,注释掉的代码 `this.height=height+averHeight;` 是非法的,因为它试图访问父类的私有变量 `averHeight`。 在测试代码 `TestChinesePeople` 中,我们创建了一个 `Chinese` 类的实例 `zs`。通过 `main` 方法中的输出语句,我们可以观察到以下几点: 1. 子类对象 `zs` 无法直接访问父类的私有变量 `averHeight`,因此在 `System.out.println("子类对象未继承的averHeight的值是:"+zs.getAverHeight());` 这一行,我们能正确地调用父类的 `getAverHeight()` 方法来获取 `averHeight` 的值。 2. `setHeight(178);` 这行代码将 `zs` 的 `height` 设置为178,而 `getHeight()` 方法返回的是 `zs` 的 `height` 值,与 `averHeight` 无关。 3. 使用 `instanceof` 关键字检查 `zs` 是否是 `Chinese` 类或 `People` 类的实例,结果都为 `true`。这表明 `zs` 不仅是 `Chinese` 类的实例,也是 `People` 类的实例,因为每个 `Chinese` 对象都是 `People` 对象的子集。 4. `instanceof` 操作符用于检测一个对象是否属于特定的类或其子类(或接口),在Java中,它是多态性的一种体现,它允许我们编写更加通用的代码。 Java中子类对象的特点主要包括: - 继承:子类可以继承父类的非私有属性和方法。 - 封装:子类不能直接访问父类的私有成员,但可以通过公共方法间接访问。 - 多态性:子类对象可以被视为父类对象,这使得代码更加灵活。 - 构造器:子类构造器在创建对象时会调用父类的构造器(除非显式指定),确保父类的状态得到初始化。 这些特性在实际编程中具有重要的意义,它们使得代码可重用性增强,结构更清晰,同时也支持复杂的设计模式和抽象。在设计和实现类的继承关系时,理解这些特性至关重要。
- 粉丝: 47
- 资源: 7704
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助