MST

星途 面试题库

面试题:Java中基于多态实现代码复用的基础方式

请简述在Java中,如何通过多态来实现代码复用? 并举例说明使用继承和接口两种方式实现多态以复用代码的具体步骤。
26.1万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

多态实现代码复用简述

在Java中,多态允许使用一个父类类型的变量来引用不同子类类型的对象,从而根据对象实际类型调用相应的方法。这样,在编写通用代码时,只需要针对父类类型进行操作,不同子类对象会执行各自重写的方法,实现了代码复用。例如,对于一个绘制图形的程序,有圆形、矩形等不同图形类,它们都继承自图形父类。在绘制图形的通用方法中,只需要接收图形父类对象,而不同图形子类通过重写绘制方法来实现自己的绘制逻辑,调用通用绘制方法时就可以根据实际传入的不同子类对象绘制不同图形,复用了绘制方法的代码结构。

使用继承实现多态以复用代码的步骤

  1. 定义父类:定义一个包含通用方法的父类。例如:
class Animal {
    public void makeSound() {
        System.out.println("动物发出声音");
    }
}
  1. 定义子类并继承父类:子类继承父类并根据自身需求重写父类方法。
class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("汪汪汪");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("喵喵喵");
    }
}
  1. 在代码中使用多态:通过父类类型的变量引用子类对象,调用重写方法实现多态和代码复用。
public class Main {
    public static void main(String[] args) {
        Animal animal1 = new Dog();
        Animal animal2 = new Cat();
        animal1.makeSound();
        animal2.makeSound();
    }
}

使用接口实现多态以复用代码的步骤

  1. 定义接口:定义一个接口,包含需要实现的方法。
interface Shape {
    void draw();
}
  1. 定义类实现接口:多个类实现该接口,并实现接口中的方法。
class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("绘制圆形");
    }
}

class Rectangle implements Shape {
    @Override
    public void draw() {
        System.out.println("绘制矩形");
    }
}
  1. 在代码中使用多态:通过接口类型的变量引用实现类对象,调用接口方法实现多态和代码复用。
public class Main {
    public static void main(String[] args) {
        Shape shape1 = new Circle();
        Shape shape2 = new Rectangle();
        shape1.draw();
        shape2.draw();
    }
}