网站首页 > 博客文章 正文
如下代码配套视频:《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);
}
}
猜你喜欢
- 2025-07-03 电子时代前都有哪些特别的计算机(电子时代前都有哪些特别的计算机应用)
- 2025-07-03 python入门到脱坑 输入与输出—input()函数
- 2025-07-03 30天Python 入门到精通(python7天入门到精通)
- 2025-07-03 30天学会Python编程:4. Python运算符与表达式
- 2025-07-03 python入门-day3-运算符与输入输出
- 2025-07-03 「Python精品教程」Python快速入门,基础数据结构:数字
- 2025-07-03 python入门到脱坑经典案例—求两个数的和
- 2024-08-08 图文详解|三菱FX3U表格定位指令案例,资深工程师亲授实操经验
- 2024-08-08 使用VASP作为后端的Raman非共振活动计算器vasp_raman.py
- 2024-08-08 用JS写Windows计算器(js编写计算器)
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)