全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

java编程中的多态

发布时间:2023-06-15 17:20:00
发布人:zyh

  多态是面向对象编程中的一个重要概念,它允许不同类型的对象对同一个消息做出不同的响应。在Java编程中,多态性通过方法重写(Override)和方法重载(Overload)来实现。

  1. 方法重写(Override):子类可以重写(覆盖)父类的方法,以改变方法的实现细节。重写的方法具有相同的名称、参数列表和返回类型。通过重写,子类可以提供自己的实现逻辑,而不是直接继承父类的实现。当父类的引用指向子类的对象时,调用相同的方法会执行子类的重写方法。  

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

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

public class Main {
public static void main(String[] args) {
Animal animal = new Dog();
animal.makeSound(); // 输出: Dog barks
}
}

  2. 方法重载(Overload):在同一个类中,可以定义多个方法具有相同的名称,但参数列表不同。这些方法可以执行相似的操作,但具有不同的输入。编译器根据传入的参数类型和数量来决定调用哪个方法。  

class Calculator {
public int add(int a, int b) {
return a + b;
}

public double add(double a, double b) {
return a + b;
}
}

public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator();
int sum1 = calculator.add(2, 3); // 调用int版本的add方法
double sum2 = calculator.add(2.5, 3.7); // 调用double版本的add方法
}
}

  多态性在Java中有许多应用场景,其中最常见的是使用父类的引用指向子类的对象,以实现对不同子类的统一处理。这样做可以提高代码的灵活性和可扩展性,使程序更易于维护和扩展。  

class Shape {
public void draw() {
System.out.println("Drawing a shape");
}
}

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

class Rectangle extends Shape {
@Override
public void draw() {
System.out.println("Drawing a rectangle");
}
}

public class Main {
public static void main(String[] args) {
Shape shape1 = new Circle();
Shape shape2 = new Rectangle();

shape1.draw(); // 输出: Drawing a circle
shape2.draw(); // 输出: Drawing a rectangle
}
}

  在上述示例中,Shape类是父类,Circle和Rectangle类是其子类。通过父类的引用指向不同的子类对象,可以调用它们各自的draw()方法,实现了对不同形状的统一处理。这种多态性的应用使得代码更具灵活性,当新增一种形状时,只需要扩展Shape类的子类即可,不需要修改原有的代码逻辑。

#java编程中的多态

相关文章

什么是逆强化学习?

什么是逆强化学习?

2023-10-15
什么是KPI?

什么是KPI?

2023-10-15
NAS是什么?

NAS是什么?

2023-10-15
什么是协程?

什么是协程?

2023-10-15

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取