当前位置:首页 > Java

java如何实现多态

2026-01-14 17:27:58Java

多态的概念

多态是面向对象编程的三大特性之一(封装、继承、多态),指同一操作作用于不同对象时,可以产生不同的行为。Java中主要通过方法重写(Override)和接口/抽象类实现多态。

实现多态的三种方式

方法重写(Override)

子类继承父类并重写父类的方法,通过父类引用调用子类对象时,实际执行的是子类的方法。

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

class Dog extends Animal {
    @Override
    public 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 a circle");
    }
}

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

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

抽象类

抽象类可以定义抽象方法,子类必须实现这些方法,从而实现多态。

abstract class Vehicle {
    abstract void run();
}

class Car extends Vehicle {
    @Override
    void run() {
        System.out.println("Car runs 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 runs on road"
        vehicle2.run(); // 输出 "Boat sails on water"
    }
}

多态的核心条件

  1. 继承或实现关系:子类继承父类或实现接口。
  2. 方法重写:子类必须重写父类或接口的方法。
  3. 向上转型:父类引用指向子类对象(如 Animal myDog = new Dog())。

多态的应用场景

  • 方法参数或返回值类型为父类/接口,实际传入或返回子类对象。
  • 集合中存储同一父类的不同子类对象(如 List<Animal> 包含 DogCat)。
  • 框架设计(如Spring的依赖注入通过接口解耦具体实现)。

通过合理使用多态,可以提高代码的扩展性和可维护性。

java如何实现多态

分享给朋友:

相关文章

vue如何实现计算

vue如何实现计算

Vue 实现计算的方法 Vue 提供了多种方式来实现计算逻辑,包括计算属性、方法、侦听器等。以下是几种常见的实现方式: 计算属性(Computed Properties) 计算属性是基于它们的响应式…

vue项目如何实现

vue项目如何实现

Vue项目实现步骤 环境搭建 确保已安装Node.js和npm。使用Vue CLI创建项目: npm install -g @vue/cli vue create my-project cd my-…

vue如何实现注册

vue如何实现注册

Vue 注册功能实现步骤 注册功能通常涉及前端表单、数据验证、与后端API交互等环节。以下是基于Vue 3和Element Plus的典型实现方式: 表单设计与数据绑定 使用Vue的v-model实…

vue如何实现冒泡

vue如何实现冒泡

Vue 实现冒泡排序的步骤 在 Vue 中实现冒泡排序,可以通过数据绑定和计算属性来动态展示排序过程。以下是一个完整的实现示例。 示例代码 <template> <div&g…

vue如何实现放大缩小

vue如何实现放大缩小

Vue 实现放大缩小功能 在 Vue 中实现放大缩小功能可以通过多种方式实现,以下介绍几种常见的方法: 使用 CSS transform 缩放 通过绑定 CSS 的 transform: scal…

vue自动登录如何实现

vue自动登录如何实现

实现自动登录的基本思路 自动登录通常通过结合本地存储(如localStorage或cookie)和token验证机制实现。用户首次登录成功后,服务器返回的认证token会被保存在客户端,下次打开应用时…