当前位置:首页 > Java

java中如何实现多态

2026-03-04 01:49:24Java

多态的实现方式

在Java中,多态主要通过继承和接口实现,允许不同类的对象对同一消息做出响应。以下是实现多态的核心方法:

java中如何实现多态

方法重写(Override)

子类可以重写父类的方法,调用时根据实际对象类型决定执行哪个方法。

java中如何实现多态

class Animal {
    void sound() {
        System.out.println("Animal makes sound");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        System.out.println("Dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myDog = new Dog(); // 父类引用指向子类对象
        myDog.sound(); // 输出: Dog barks
    }
}

接口实现

通过接口定义方法,由不同类实现同一接口的方法。

interface Shape {
    void draw();
}

class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing Circle");
    }
}

class Square implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing Square");
    }
}

public class Main {
    public static void main(String[] args) {
        Shape shape1 = new Circle();
        Shape shape2 = new Square();
        shape1.draw(); // 输出: Drawing Circle
        shape2.draw(); // 输出: Drawing Square
    }
}

抽象类与抽象方法

抽象类可以定义抽象方法,强制子类实现具体逻辑。

abstract class Vehicle {
    abstract void run();
}

class Car extends Vehicle {
    @Override
    void run() {
        System.out.println("Car drives on road");
    }
}

class Boat extends Vehicle {
    @Override
    void run() {
        System.out.println("Boat sails on water");
    }
}

public class Main {
    public static void main(String[] args) {
        Vehicle vehicle1 = new Car();
        Vehicle vehicle2 = new Boat();
        vehicle1.run(); // 输出: Car drives on road
        vehicle2.run(); // 输出: Boat sails on water
    }
}

多态的应用场景

  • 动态绑定:运行时确定调用的方法(如上述示例)。
  • 集合中的多态:使用父类类型存储不同子类对象。
    List<Animal> animals = new ArrayList<>();
    animals.add(new Dog());
    animals.add(new Cat());
    for (Animal animal : animals) {
      animal.sound(); // 根据实际对象调用方法
    }

注意事项

  • 多态仅适用于方法,不适用于成员变量(变量调用看引用类型)。
  • 若需调用子类特有方法,需进行向下转型(如 ((Dog)myDog).fetch())。

分享给朋友:

相关文章

vue如何实现tap

vue如何实现tap

实现Tap事件的方法 在Vue中实现类似移动端的tap事件(轻触)可以通过以下几种方式完成。原生移动端浏览器通常通过touchstart和touchend事件组合模拟tap,而Vue中可以封装自定义指…

vue如何实现重新实现主题

vue如何实现重新实现主题

Vue 主题切换的实现方法 使用 CSS 变量动态切换主题 定义主题相关的 CSS 变量,通过修改这些变量实现主题切换。在根元素(如 :root)中定义默认主题的变量,在特定类名下定义其他主题的变量。…

vue如何实现加减

vue如何实现加减

在 Vue 中实现加减功能 使用数据绑定和事件处理 通过 Vue 的数据绑定和事件处理机制可以轻松实现加减功能。定义一个数据变量存储数值,通过方法增减该变量。 <template>…

vue如何实现轮播

vue如何实现轮播

使用 Vue 实现轮播 使用第三方库(推荐) Vue 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper。以下是使用 vue-awesome-swiper 的示…

如何实现vue验证

如何实现vue验证

Vue 表单验证的实现方法 Vue 表单验证可以通过多种方式实现,包括内置指令、第三方库和自定义验证逻辑。以下是几种常见的方法: 使用 Vue 内置指令进行基础验证 Vue 提供了 v-model…

vue如何实现编辑

vue如何实现编辑

实现编辑功能的步骤 在Vue中实现编辑功能通常涉及表单绑定、状态管理和事件处理。以下是常见的实现方式: 数据绑定与表单处理 使用v-model实现双向数据绑定,将编辑内容与Vue实例中的数据属性关联…