如下代码配套视频:《27. 多态|动态绑定,一接口千实现》
27.1 接口多态
Operation.java
package com.polymorphism.demo1;
/**
* @author 今日头条:老陈说编程
* 定义一个函数式接口,包含一个抽象方法用于执行二元运算
*/
interface Operation {
double calculate(double a, double b); // 定义计算方法的签名
}
Addition.java
package com.polymorphism.demo1;
/**
* @author 今日头条:老陈说编程
* Addition类实现Operation接口,用于执行加法运算
*/
class Addition implements Operation {
@Override
public double calculate(double a, double b) {
return a + b; // 返回两数之和
}
}
Subtraction.java
package com.polymorphism.demo1;
/**
* @author 今日头条:老陈说编程
* Subtraction类实现Operation接口,用于执行减法运算
*/
class Subtraction implements Operation {
@Override
public double calculate(double a, double b) {
return a - b; // 返回两数之差
}
}
Multiplication.java
package com.polymorphism.demo1;
/**
* @author 今日头条:老陈说编程
* Multiplication类实现Operation接口,用于执行乘法运算
*/
class Multiplication implements Operation {
@Override
public double calculate(double a, double b) {
return a * b; // 返回两数之积
}
}
Main.java
package com.polymorphism.demo1;
/**
* @author 今日头条:老陈说编程
* 主类,程序执行的入口点
*/
public class Main {
public static void main(String[] args) {
// 创建加法运算实例
Operation add = new Addition();
// 创建减法运算实例
Operation subtract = new Subtraction();
// 创建乘法运算实例
Operation multiply = new Multiplication();
// 调用静态方法执行加法,输出: 8.0
System.out.println(calculate(5, 3, add));
// 调用静态方法执行减法,输出: 2.0
System.out.println(calculate(5, 3, subtract));
// 调用静态方法执行乘法,输出: 15.0
System.out.println(calculate(5, 3, multiply));
}
// 通用计算方法,通过传入不同的运算实现执行不同操作
public static double calculate(double a, double b, Operation op) {
return op.calculate(a, b); // 委托给具体实现执行计算
}
}
27.2 方法多态
Calculator.java
package com.polymorphism.demo2;
/**
* @author 今日头条:老陈说编程
* 计算器类,包含多种加法重载方法
*/
public class Calculator {
// 计算两个整数的和并打印结果
public void add(int a, int b) {
System.out.println("两个整数之和为:" + (a + b));
}
// 计算两个浮点数的和并打印结果
public void add(double a, double b) {
System.out.println("两个浮点数之和:" + (a + b));
}
// 计算一个整数和一个浮点数的和并打印结果
public void add(int a, double b) {
System.out.println("一个整数和一个浮点数之和:" + (a + b));
}
// 程序入口点
public static void main(String[] args) {
// 创建计算器对象
Calculator calculator = new Calculator();
// 调用整数加法方法
calculator.add(10, 10);
// 调用浮点数加法方法
calculator.add(10.25, 20.51);
// 调用混合类型加法方法
calculator.add(10, 20.51);
}
}