Java类继承与多态问题:子类覆盖父方法示例及陷阱

原创 ゝ一纸荒年。 2024-09-10 15:18 129阅读 0赞

在Java编程中,类的继承和多态是两个重要的概念。

  1. 继承

    • 子类可以从父类继承属性(数据成员)和方法。
    • 示例:
      ```java
      // 父类
      class Animal {
      void eat() {
      1. System.out.println("Animal is eating");
      }
      }

    // 子类
    class Dog extends Animal {

    1. // 子类覆盖父方法
    2. @Override
    3. void eat() {
    4. System.out.println("Dog is eating");
    5. }

    }
    ```

  2. 多态
    • 多态是指一个引用可以指向不同类型的对象,而调用方法时能自动适应其实际类型进行操作。
    • 通过继承和接口实现。

陷阱:

  • 当子类覆盖父类的方法时,如果在父类或子类的其他地方直接调用父类的方法,可能会导致无法预期的行为,需要使用this关键字或者显式调用子类方法。
  1. // 错误示例
  2. Animal myAnimal = new Dog(); // 创建Dog对象,但类型仍为Animal
  3. myAnimal.eat(); // 这会直接调用Animal的eat()方法,导致错误行为
  4. // 正确示例
  5. myAnimal = myAnimal; // 更新引用类型为Dog
  6. myAnimal.eat(); // 这会调用Dog的eat()方法,正确实现多态
文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,129人围观)

还没有评论,来说两句吧...

相关阅读