Java面向对象编程:继承与方法覆盖解析

版权申诉
0 下载量 62 浏览量 更新于2024-08-30 收藏 17KB PDF 举报
"面向对象编程是Java的核心特性,本学习笔记主要涵盖了Lesson2中的类的继承和方法的覆盖这两个重要概念。 在Java中,类的继承是实现代码复用和创建层次结构的重要机制。通过使用`extends`关键字,一个类可以继承另一个类的属性和方法,被继承的类被称为父类、超类或基类,而新创建的类则被称为子类、派生类。例如,`class Fish extends Animal`表示`Fish`类继承了`Animal`类的特性。然而,Java并不支持多继承,即一个类只能有一个直接父类,这有助于避免复杂的继承关系导致的二义性问题。 `Animal`类中定义了`eat()`, `sleep()`和`breath()`三个方法,以及两个成员变量`weight`和`height`。在`Fish`类中,虽然没有显式地声明这些属性和方法,但它们仍然是可用的,因为`Fish`继承自`Animal`。在`Integration`类的`main`方法中,我们创建了一个`Animal`对象`an`和一个`Fish`对象`fh`,然后调用了它们的`breath()`方法。由于`Fish`类覆盖了`Animal`类的`breath()`方法,因此两者打印的结果不同,分别输出"animalbreath"和"fishbubble"。 方法的覆盖(Override)是指在子类中定义一个与父类同名、返回类型和参数列表完全相同的方法,以替换父类中的原有实现。在这个例子中,`Fish`类的`breath()`方法覆盖了`Animal`类的`breath()`方法。方法的覆盖允许子类根据自身需求定制父类的行为,而不影响父类原有的功能。需要注意的是,方法的重载(Overload)则是在同一个类中定义多个方法,它们具有相同的名称但参数列表不同,这与覆盖不同,不在本例的讨论范围内。 为了编译和运行这个程序,我们需要使用`javac`命令编译源代码,如`javac Animal.java`,这将生成对应的字节码文件`.class`。然后,使用`java`命令执行程序,指定包含`main`方法的类,例如`java Integration`,程序会按照`main`方法中的逻辑运行。 通过这个例子,我们可以深入理解Java中类的继承和方法覆盖的概念,它们是构建复杂软件系统的基础,允许我们创建可扩展和模块化的代码。在实际开发中,合理利用这些特性可以提高代码的复用性和可维护性。