当前位置: 首页 > news >正文

c#接口_抽象类_多态学习

c#接口_抽象类_多态学习

学习日志

关于:c#接口_抽象类_多态的学习记录。

一、概念

1. 多态(Polymorphism)

  • 定义:同一操作作用于不同对象时,表现出不同的行为。
  • 实现方式:
    • 继承 + 方法重写(override)。
    • 接口实现。
    • 父类引用指向子类对象。
internal abstract class Animal{}
internal class Dog : Animal{}
Animal myDog = new Dog(); // 多态:父类引用指向子类对象

2. 抽象类(Abstract Class)

  • 定义:不能被实例化的类,用于定义部分实现并强制子类完成特定行为。

Animal animal = new Animal(); ❌ 错误 CS0144: 无法创建抽象类的实例

  • 核心语法:
    • 抽象方法没有实现,子类必须重写。
    • 可以包含具体方法(用 virtual 允许子类重写)。
  • 适用场景:
    • 需要共享公共代码逻辑。
    • 强制子类实现某些方法。
internal abstract class Animal
{// 抽象方法:没有实现,子类必须重写public abstract void MakeSound(); // 具体方法:子类可直接继承或重写public virtual void Move(){Console.WriteLine("Animal is moving.");}
}// 子类 Dog 必须实现 MakeSound()
internal class Dog : Animal
{public override void MakeSound() //必须重写抽象方法{Console.WriteLine("Dog says: Woof!");}
}#### 抽象方法 internal abstract class Animal
{// 抽象方法:没有实现,子类必须重写public abstract void MakeSound(); protected virtual void DoSomeThing(){MakeSound();}protected void HearSomeThing(){MakeSound();}// 具体方法:子类可直接继承或重写public virtual void Move(){Console.WriteLine("Animal is moving.");}
}// 子类 Dog 必须实现 MakeSound()
internal class Dog : Animal
{protected override void DoSomeThing(){base.DoSomeThing();}public override void MakeSound() //必须重写抽象方法{Console.WriteLine("Dog says: Woof!");}
}
Dog mydog=new Dog();
mydog.DoSomeThing();
> Dog says: Woof!mydog.HearSomeThing();
> Dog says: Woof!

3. 接口(Interface)

  • 定义:纯行为契约,定义类必须实现的方法和属性(C# 8.0 前不包含实现)。
  • 核心语法:
    • 默认成员为 public
    • C# 8.0+ 支持默认实现和访问修饰符。
  • 适用场景:
    • 定义跨类别的能力(如 IFlyable 接口可被 BirdPlane 实现)。
    • 解决单继承限制(一个类可实现多个接口)。
public interface Animal {void makeSound(); 
}// ❌ 错误:接口不能直接实例化
Animal animal = new Animal(); // 编译错误!

二、抽象类_接口_多态对比

特性抽象类接口多态
核心目标代码复用 + 强制子类实现定义行为契约统一调用不同对象的行为
默认实现支持C# 8.0+ 支持默认实现不直接相关
继承/实现单继承(一个子类只能继承一个)多实现(一个类可实现多个接口)依赖继承或接口实现
方法修饰符abstract(必须重写)、virtual(可选重写)隐式 public(C# 8.0 前)override(重写父类/接口方法)
典型场景定义“是什么”(is-a)关系定义“能做什么”(can-do)关系动态调用不同子类/实现类的行为

三、代码示例

1. 抽象类与多态(三层继承)

// 抽象基类
internal abstract class Vehicle {public abstract void Start(); // 必须实现public virtual void Stop() => Console.WriteLine("Stopping..."); // 可选重写
}// 子类 Car
internal class Car : Vehicle {public override void Start() => Console.WriteLine("Key start"); // 必须实现public override void Stop() => Console.WriteLine("Brake stop"); // 重写
}// 孙子类 ElectricCar
internal class ElectricCar : Car {public override void Start() => Console.WriteLine("Button start"); // 重写// 不重写 Stop(),使用 Car 的版本
}

2. 接口与多态

// 接口定义
internal interface IPayment {void Pay(decimal amount);
}// 实现类
internal class Alipay : IPayment {public void Pay(decimal amount) => Console.WriteLine($"Alipay: {amount}");
}internal class WeChatPay : IPayment {public void Pay(decimal amount) => Console.WriteLine($"WeChat: {amount}");
}// 多态调用
List<IPayment> payments = new List<IPayment> { new Alipay(), new WeChatPay() };
foreach (var payment in payments) {payment.Pay(100); // 同一方法,不同实现
}

四、其他

1. 什么是否使用 抽象类 或者 接口

  • 用抽象类:

    • 需要共享公共代码或字段。
    • 强制子类实现某些方法,同时提供部分默认实现。
    • 典型场景:VehicleCarElectricCar
  • 用接口:

    • 定义无关类的共同能力(如 IFlyable),但是方法名称相同。
    • 需要多继承(如一个类实现 IRunnableISwimmable)。
    • 典型场景:支付系统(IPayment)。

2. 多态的最佳实践

  • 通过父类或接口引用操作对象:
    Animal animal = new Dog(); 
    animal.MakeSound(); // 调用 Dog 的实现
    
  • 利用集合统一管理不同对象:
    List<Vehicle> vehicles = new List<Vehicle> { new Car(), new ElectricCar() };
    foreach (var vehicle in vehicles) vehicle.Start(); // 不同子类不同行为
    

3. 多层继承中的方法重写规则

  • 子类必须实现父类的抽象方法(除非子类也是 abstract)。
  • 子类可以重写 virtual 方法,或选择不重写(沿用父类实现)。
  • 孙子类可重写父类已实现的方法(需父类方法标记为 virtual)。

4. 注意事项

  1. 接口的默认实现(C# 8.0+)应谨慎使用,避免破坏接口的契约性。
  2. 避免过度继承:三层以上继承可能导致代码复杂,优先考虑组合或接口。
  3. 命名规范:接口名称以 I 开头(如 IEnumerable),抽象类以 BaseAbstract 结尾(可选)。

相关文章:

c#接口_抽象类_多态学习

c#接口_抽象类_多态学习 学习日志 关于&#xff1a;c#接口_抽象类_多态的学习记录。 一、概念 1. 多态&#xff08;Polymorphism&#xff09; 定义&#xff1a;同一操作作用于不同对象时&#xff0c;表现出不同的行为。实现方式&#xff1a; 继承 方法重写&#xff08;ov…...

BGE-M3模型深度技术分析

以下是针对 BGE-M3 模型的深度技术分析&#xff0c;综合其架构设计、核心能力、性能表现及实际应用场景&#xff1a; 一、模型概览 BGE-M3&#xff08;Beijing General Embedding M3&#xff09;是北京智源研究院&#xff08;BAAI&#xff09;推出的多语言通用向量模型&#x…...

光谱相机如何提升目标检测与识别精度

光谱相机&#xff08;多光谱/高光谱&#xff09;通过捕捉目标在多个波段的光谱特征&#xff0c;能够揭示传统RGB相机无法感知的材质、化学成分及物理特性差异。以下是提升其目标检测与识别精度的核心方法&#xff1a; ‌1. 硬件优化&#xff1a;提升数据质量‌ ‌(1) 光谱分辨…...

漏洞管理体系:从扫描评估到修复验证的全生命周期实践

漏洞管理体系&#xff1a;从扫描评估到修复验证的全生命周期实践 在网络安全防御体系中&#xff0c;漏洞管理是“攻防博弈”的核心战场。据NVD&#xff08;国家漏洞数据库&#xff09;统计&#xff0c;2023年新增漏洞超21万个&#xff0c;平均每天披露575个&#xff0c;其中32…...

资深程序员进阶设备分享,专业编程显示器RD280U

前言 在软件开发行业多年&#xff0c;长时间在电脑前工作常让我眼花、眼困、脊椎不舒服。曾尝试很多方法、买过不少产品&#xff0c;像显示器护眼挂灯、机械臂等&#xff0c;效果不佳还麻烦。直到我用上明基 RD280U 专业编程显示器&#xff0c;它上下可调高度&#xff0c;适配…...

云+AI双轮驱动,亚马逊云科技加速中国企业出海新浪潮

导读&#xff1a;全球化就是本地化 作者 | 小葳 图片来源 | 摄图 近年来&#xff0c;中国企业出海步伐不断加快&#xff0c;“不出海&#xff0c;就出局”成为很多企业的共识。 据沙利文统计&#xff0c;2024年上半年&#xff0c;超过2000家中国上市企业布局海外市场&#xff…...

不同ECU(MCU/ZCU/CCU)其部署(实现)的功能存在差异

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 周末洗了一个澡&#xff0c;换了一身衣服&#xff0c;出了门却不知道去哪儿&#xff0c;不知道去找谁&am…...

施工安全巡检二维码制作

进入新时代以来&#xff0c;人们对安全的重视程度越来越高。特别在建筑施工行业&#xff0c;安全不仅是关乎着工人的性命&#xff0c;更是承载着工人背后家庭的幸福生活。此时就诞生了安全巡检的工作&#xff0c;而巡检过程中内容庞杂&#xff0c;安全生产检查、隐患排查、施工…...

Linux 权限修改详解:chmod 命令与权限数字的秘密

在 Linux 系统的使用过程中&#xff0c;权限控制就像是一把神奇的钥匙&#xff0c;它决定了谁能在系统中对文件和文件夹进行何种操作。今天我们来深入了解一下如何使用 chmod 命令来修改文件和文件夹的权限&#xff0c;让你在系统管理时更加得心应手。 一、chmod 命令&#xf…...

git 的基本使用

文章目录 一、创建仓库并初始化1、操作步骤2、注意事项 二、工作区与版本库1、Git 管理文件类型2、Git 保存文件方式3、工作区与版本库概念及操作 三、命令小结四、版本回退与前进1、相关概念2、版本回退3、版本前进4、总结 五、撤销修改1、场景 12、场景 23、场景 34、注意事项…...

Android 编译问题 prebuilts/clang/host/linux-x86

Android 编译问题 prebuilts/clang/host/linux-x86工具被破环了&#xff0c;用打包的方式替换调工具&#xff0c;不能拷贝&#xff0c;会破坏工具的链接。 FAILED: out\_odm/soong/build.ninja cd "$(dirname "out\_odm/host/linux-x86/bin/soong\_build")&quo…...

SIEMENS PLC程序解读 -BLKMOV (指定长度数据批量传输)

1、程序代码 2、程序解读 这段西门子 PLC 程序&#xff08;程序段 10&#xff09;实现了基于条件的数据块移动功能&#xff0c;具体解释如下&#xff1a; 条件触点&#xff1a; %M0.1 Always<>(TRUE)&#xff08;注释为 AT<>1&#xff09;&#xff1a;当 M0.1 的值…...

Git 核心命令学习总结

一、Git 基础概念 工作目录&#xff1a;本地实际操作的文件夹&#xff0c;包含项目文件。 暂存区&#xff1a;临时存放待提交的变更&#xff08;通过 git add 添加&#xff09;。 本地仓库&#xff1a;存储项目历史版本&#xff08;通过 git commit 提交&#xff09;。 二、…...

vscode 打开csv乱码

在 Visual Studio Code (VS Code) 中打开 CSV 文件出现乱码可能是由于以下几个原因导致的&#xff1a; 编码设置不正确&#xff1a;CSV 文件可能使用了不同的字符编码方式保存&#xff0c;而 VS Code 默认使用的字符编码可能与文件实际的编码方式不一致。你可以在 VS Code 的右…...

WebUI可视化:第3章:Gradio入门实战

学习目标 ✅ 掌握Gradio的安装与基础配置 ✅ 能创建包含多种交互组件的界面 ✅ 实现前后端数据交互逻辑 ✅ 独立开发简单AI应用界面 3.1 Gradio快速安装 3.1.1 通过pip安装 打开终端(Windows:CMD/PowerShell,Mac/Linux:Terminal),执行: bash # 基础安装 pip insta…...

Flink checkpoint问题排查指南

之前只因为checkpoint过大碰到过checkpoint失败的情况&#xff0c;没想到数据倾斜也会导致 我们知道 task 仅在接受到所有的 barrier 之后才会进行 snapshot&#xff0c;如果作业存在反压&#xff0c;或者有数据倾斜&#xff0c;则会导致全部的 channel 或者某些 channel 的 …...

mysql知识总结 索引篇

mysql知识总结 索引篇 1. 索引问题常见分类1. 什么是索引2. 索引的分类3. 从数据结构分类4. 通过二级索引查询商品数据的过程5. 为什么选择B树作为索引呢&#xff1f; 本文是阅读 小林coding 后的读书笔记 原文可以点击上面超链接到达 也可以直接百度搜索 小林coding 1. 索引…...

Flink 数据清洗与字段标准化最佳实践

—— 构建可配置、可扩展的实时标准化清洗链路 本文是「Flink Kafka 构建实时数仓实战」专栏的第 4 篇&#xff0c;将围绕字段标准化这一核心问题&#xff0c;从业务痛点、技术架构、配置设计到完整代码工程&#xff0c;系统讲透标准化实践。 &#x1f4cc; 一、为什么实时字段…...

.NET写的开源工业物联网网关(IoTGateway)

Ver V0.0 250425 主要针对《物联网智能网关开发与设计》课程&#xff0c;根据官方的文档重新组织了一下&#xff0c;并演示了一下在Windows的VS2022下快速地搭建出了学习基于.NET8的Linux IoTGateway的开发&#xff0c;提供给学生作为学习的扩展和外延。 Index IoTGateway …...

蓝桥杯 5. 交换瓶子

交换瓶子 原题目链接 题目描述 有 N 个瓶子&#xff0c;编号为 1 ~ N&#xff0c;放在架子上。 例如有 5 个瓶子&#xff0c;当前排列为&#xff1a; 2 1 3 5 4每次可以拿起 2 个瓶子&#xff0c;交换它们的位置。 要求通过若干次交换&#xff0c;使得瓶子的编号从小到大…...

freeswitch配置视频对接

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 随着4G/5G网络的完善&#xff0c;视频呼叫的需求慢慢变多&#xff0c;本文介绍使用fs对接视频线路的配置方案。 环境 CentOS 7.9 freeswitch 1.10.7 视频模块 目前主流视频编解码使用H264&#xff0c;需要编译安装…...

使用Tortoise-ORM和FastAPI构建评论系统

title: 使用Tortoise-ORM和FastAPI构建评论系统 date: 2025/04/25 21:37:36 updated: 2025/04/25 21:37:36 author: cmdragon excerpt: 在models.py中定义了Comment模型,包含id、content、created_at、updated_at字段,并与User和Article模型建立外键关系。schemas.py中定义了…...

【信息安全工程师备考笔记】第三章 密码学基本理论

笔记内容整理自 https://www.bilibili.com/video/BV1X8411175t &#xff08;B站 崔老夫子老师&#xff09;&#xff0c;老师讲解的非常好&#xff0c;推荐大家看原视频。 第三章 密码学基本理论 3.1 密码学概况 密码编码学&#xff1a;明文 —— > 密文 密码分析学&#x…...

精益数据分析(22/126):解锁创业增长密码与长漏斗分析

精益数据分析&#xff08;22/126&#xff09;&#xff1a;解锁创业增长密码与长漏斗分析 在创业与数据分析的探索旅程中&#xff0c;我们都在不断寻求新的知识和方法&#xff0c;以提升创业的成功率。我一直期望能和大家共同学习、共同进步&#xff0c;今天就让我们继续深入研…...

【深度强化学习 DRL 快速实践】近端策略优化 (PPO)

PPO&#xff08;2017&#xff0c;OpenAI&#xff09;核心改进点 Proximal Policy Optimization (PPO)&#xff1a;一种基于信赖域优化的强化学习算法&#xff0c;旨在克服传统策略梯度方法在更新时不稳定的问题&#xff0c;采用简单易实现的目标函数来保证学习过程的稳定性 解决…...

14-DevOps-快速部署Kubernetes

在学习阶段&#xff0c;为了能快速部署Kubernetes&#xff0c;这里用一个快速安装工具&#xff1a;Kubeode&#xff0c;来完成Kubernetes的部署。 接下来部署一个单机&#xff0c;一主一从的Kubernetes。一主一从都部署在同一台服务器上。 在虚拟机新开一个服务器&#xff0c…...

Java 安全:如何防止 DDoS 攻击?

一、DDoS 攻击简介 DDoS&#xff08;分布式拒绝服务&#xff09;攻击是一种常见的网络攻击手段&#xff0c;攻击者通过控制大量的僵尸主机向目标服务器发送海量请求&#xff0c;致使服务器资源耗尽&#xff0c;无法正常响应合法用户请求。在 Java 应用开发中&#xff0c;了解 …...

html+servlet项目中的echart图表

介绍 ECharts 是一款由百度开源的&#xff0c;基于 JavaScript 的可视化图表库&#xff0c;它提供了丰富的图表类型和强大的交互功能&#xff0c;能将数据以直观、美观的图表形式展示出来&#xff0c;广泛应用于数据可视化、商业智能、数据分析等领域。 官网&#xff1a; Ap…...

抖音小程序开发常见问题与代码解决方案

抖音小程序开发常见问题与代码解决方案 一、API调用与组件使用问题 1. 分享卡片样式不生效 问题&#xff1a;通过onShareAppMessage分享的小程序卡片样式显示旧版模板。 代码示例&#xff1a; javascript Page({ onShareAppMessage() { return …...

Springboot 手搓 后端 滑块验证码生成

目录 一、效果演示 二、后端滑块验证码生成思路 三、原理解析 四、核心代码拿走 滑块验证码react前端实现&#xff0c;见我的这篇博客&#xff1a;前端 React 弹窗式 滑动验证码实现_react中使用阿里云滑块验证码2.0前端接入及相关视觉-CSDN博客 一、效果演示 生成的案例…...

QPS说明

QPS&#xff08;Queries Per Second&#xff0c;每秒查询数&#xff09;是用于衡量服务器或系统处理请求能力的一个关键性能指标。 它表示服务器在一秒钟内能够处理的查询或请求的数量。 QPS的详细说明&#xff1a; 1. 定义 QPS&#xff1a;每秒查询数&#xff0c;指服务器…...

(六)机器学习---聚类与K-means

到本篇文章&#xff0c;我们先对前几篇所学习的算法进行一个回顾&#xff1a; 而本篇文章我们将会介绍聚类以及K-means算法。 分类问题回归问题聚类问题各种复杂问题决策树√线性回归√K-means√神经网络√逻辑回归√岭回归密度聚类深度学习√集成学习√Lasso回归谱聚类条件随机…...

macOS 更新后找不到钥匙串访问工具的解决方案

macOS 更新后找不到钥匙串访问工具的解决方案 随着macOS的不断更新&#xff0c;一些系统工具的位置可能会发生变化&#xff0c;给用户带来不便。钥匙串访问&#xff08;Keychain Access&#xff09;是macOS中一个非常重要的工具&#xff0c;用于管理密码、证书等敏感信息。最近…...

Mac 「brew」快速安装MySQL

安装MySQL 在 macOS 上安装 MySQL 环境可以通过Homebrew快速实现&#xff0c;以下是步骤指南&#xff1a; 方法 1&#xff1a;使用 Homebrew 安装 MySQL 1. 安装 Homebrew 如果尚未安装 Homebrew&#xff0c;可以通过以下命令安装&#xff1a; /bin/bash -c "$(curl -…...

代码随想录算法训练营第五十八天 | 1.拓扑排序精讲 2.dijkstra(朴素版)精讲 卡码网117.网站构建 卡码网47.参加科学大会

1.拓扑排序精讲 题目链接&#xff1a;117. 软件构建 文章讲解&#xff1a;代码随想录 思路&#xff1a; 把有向无环图进行线性排序的算法都可以叫做拓扑排序。 实现拓扑排序的算法有两种&#xff1a;卡恩算法&#xff08;BFS&#xff09;和DFS&#xff0c;以下BFS的实现思…...

Flutter Dart中的函数参数 默函数的定义 可选参数 箭头函数 匿名函认参数 命名参类数 闭包等

//使用forEach 打印下面的List里面的数据List list ["西瓜", "苹果", "香蕉"];list.forEach((value) {print(value);});//箭头函数1list.forEach((value) > print(value)); //只能一句//箭头函数2list.forEach((value) >{print(value), /…...

京东平台关键字搜索接口开发指南:Python实现与代码详解

一、接口概述 京东关键字搜索接口允许开发者通过HTTP请求获取平台商品的关键字搜索结果&#xff0c;常用于商品比价、数据分析等场景。本文基于Python演示如何调用京东搜索接口&#xff0c;解析返回数据并实现基础功能。 二、技术实现步骤 接口地址分析‌ 京东未完全公开API…...

告别进度失控:用燃尽图补上甘特图的监控盲区

在职场中&#xff0c;项目经理最头疼的莫过于“计划赶不上变化”。明明用甘特图排好了时间表&#xff0c;任务却总像脱缰野马——要么进度滞后&#xff0c;要么资源分配失衡。甘特图虽能直观展示任务时间轴&#xff0c;但面对突发风险或团队效率波动时&#xff0c;它更像一张“…...

PHP框架在微服务迁移中能发挥什么作用?

微服务架构因其模块化、高可用性和弹性扩展能力&#xff0c;已成为现代分布式系统的核心设计模式。PHP作为一门长期服务于Web开发的脚本语言&#xff0c;其生态中的主流框架&#xff08;如Laravel、Symfony&#xff09;通过模块化设计、高效通信机制和丰富的工具链&#xff0c;…...

Linux驱动开发快速上手指南:从理论到实战

Linux驱动开发快速上手指南&#xff1a;从理论到实战 作为嵌入式Linux开发的核心技能之一&#xff0c;驱动开发对于硬件控制至关重要。面对众多章节和概念&#xff0c;初学者常感到无从下手。本文将为你梳理Linux驱动开发的关键路径&#xff0c;提供从理论到实战的完整指导&am…...

第1讲|R语言绘图体系总览(Base、ggplot2、ComplexHeatmap等)

目录 第1讲|R语言绘图体系总览 ✨ 引言:为什么R绘图如此重要? 🧩 1. Base绘图系统 🧩 2. ggplot2生态系统 🧩 3. ComplexHeatmap超级热图系统 🧩 4. 其他特色绘图库(快速了解) ✏️ 小结一句话 📅 预告下一讲 第1讲|R语言绘图体系总览 (Base、ggplot…...

Android FFmpeg 交叉编译全指南:NDK编译 + CMake 集成

开发环境搭建 下载最新版Android Studio&#xff0c;安装SDK和模拟器 在Android Studio中配置&#xff1a;Setting → Android SDK → SDK Tools → 勾选CMake 和 NDK → Apply&#xff0c;按照提示下载安装 SDK是Android应用开发的基础工具包&#xff0c;适合大多数上层逻辑…...

Spring AI 快速入门:从环境搭建到核心组件集成

Spring AI 快速入门&#xff1a;从环境搭建到核心组件集成 一、前言&#xff1a;Java开发者的AI开发捷径 对于Java生态的开发者来说&#xff0c;将人工智能技术融入企业级应用往往面临技术栈割裂、依赖管理复杂、多模型适配困难等挑战。Spring AI的出现彻底改变了这一局面——…...

研发内控新规下的合规之道:维拉工时助力企业穿越IPO审查雷区

&#x1f4cc; 背景 | 全面注册制下&#xff0c;研发内控成“必修课” 在全面注册制背景下&#xff0c;证监会发布的《监管规则适用指引——发行类第9号&#xff1a;研发人员及研发投入》&#xff08;简称“发行类9号”&#xff09;&#xff0c;对企业的研发费用归集、研发工时…...

PyTorch生成式人工智能实战(3)——分类任务详解

PyTorch生成式人工智能实战&#xff08;3&#xff09;——分类任务详解 0. 前言1. 使用 PyTorch 进行端到端的深度学习1.1 PyTorch 深度神经网络训练流程1.2 数据预处理 2. 二分类2.1 创建数据批次2.2 模型构建与训练2.3 模型测试 3. 多类别分类3.1 验证集和提前停止3.2 模型构…...

单机无穷大系统暂态稳定性仿真Matlab模型

1.模型简介 本仿真模型基于MATLAB/Simulink&#xff08;版本MATLAB 2017Ra&#xff09;软件。建议采用matlab2017 Ra及以上版本打开。&#xff08;若需要其他低版本可联系代为转换&#xff09; 电力系统是一个复杂的动态系统&#xff0c;系统一旦出现稳定性问题&#xff0c;可…...

12个HPC教程汇总!从入门到实战,覆盖分子模拟/材料计算/生物信息分析等多个领域

在科学研究、工程仿真、人工智能和大数据分析等领域&#xff0c;高性能计算 (High Performance Computing, HPC) 正扮演着越来越重要的角色。它通过并行处理、大规模计算资源的整合&#xff0c;极大提升了计算效率&#xff0c;使原本耗时数日的任务能够在数小时内完成。 随着计…...

零基础快速搭建AI绘画网站!用Gradio玩转Stable Diffusion

借助Gradio&#xff0c;简单几行Python代码即可快速搭建一个专属的AI绘画网站&#xff0c;轻松部署Stable Diffusion文生图应用&#xff0c;gradio自带的组件已经相当美化了&#xff0c;前端基础也省了&#xff01; 好像大神的Stable Diffusion WebUI项目也是用的Gradio搭建的&…...

SpringCloud搭建Eureka注册中心

1、Eureka 的简介 Eureka 是 Netflix 开源的 ‌服务注册与发现框架‌,后被 Spring Cloud 集成为核心组件,用于解决微服务架构中服务治理问题。其核心目标是通过动态管理服务实例信息,实现服务间的透明通信与负载均衡。Eureka 通过简洁的 Server-Client 模型,结合心跳、缓存…...

信息学奥赛一本通 1509:【例 1】Intervals | OpenJudge 百练 1201:Intervals

【题目链接】 ybt 1509&#xff1a;【例 1】Intervals OpenJudge 百练 1201:Intervals 【题目考点】 1. 贪心算法 树状数组 并查集 2. 差分约束算法 【解题思路】 解法1&#xff1a;贪心算法树状数组、并查集优化 该题属于区间选点问题&#xff0c;ybt 1324&#xff1a;…...