惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Threat Research - Cisco Blogs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Troy Hunt's Blog
V
V2EX - 技术
Hacker News - Newest:
Hacker News - Newest: "LLM"
H
Heimdal Security Blog
T
Tor Project blog
IT之家
IT之家
Project Zero
Project Zero
GbyAI
GbyAI
Security Latest
Security Latest
S
Security Archives - TechRepublic
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
Spread Privacy
Spread Privacy
S
Security Affairs
A
Arctic Wolf
C
Cybersecurity and Infrastructure Security Agency CISA
I
Intezer
P
Palo Alto Networks Blog
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
T
Threatpost
I
InfoQ
F
Full Disclosure
Blog — PlanetScale
Blog — PlanetScale
Last Week in AI
Last Week in AI
Cisco Talos Blog
Cisco Talos Blog
N
Netflix TechBlog - Medium
MyScale Blog
MyScale Blog
H
Help Net Security
S
Securelist
Y
Y Combinator Blog
月光博客
月光博客
博客园_首页
Engineering at Meta
Engineering at Meta
酷 壳 – CoolShell
酷 壳 – CoolShell
J
Java Code Geeks
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
A
About on SuperTechFans
K
Kaspersky official blog
Microsoft Azure Blog
Microsoft Azure Blog
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
T
The Exploit Database - CXSecurity.com
B
Blog

博客园 - GKLBB

软件研发 --- AI模型 之 图片转xlsx 软件神器 --- ctf靶场 之 pwn.college 术语俗话 --- 什么是加密狗 软件神器 --- 自动电脑锁屏软件 软件研发 --- 网络安全 之 putty生成无密码登录密钥 软件神器 --- 视频剪辑 之 Avidemux MP4Joiner Shotcut 软件神器 --- 视频格式转化 之 handbrake 软件研发 --- 应知应会 之 经验之谈 这个是什么图标,经常看到 软件研发 --- 术语俗话 之 多模态 术语俗话 --- 什么是大数据开发 术语俗话 --- 什么是边缘计算 软件研发 --- 应知应会 之 什么是云计算开发 应知应会 --- 如何不装软件查看网速 常见问题解决 --- 360拦截接触 常见问题解决 --- 加入会议摄像头无法打开 网络安全 --- CTF打靶 之 ZIP伪加密 → Robot36慢扫电视 → 二维码补齐 → DeepSound隐写 → GPG解密 → Base64图片 → SilentEye隐写 软件研发 --- 应知应会 之 无错误的闪退如何解决 软件研发 --- 应知应会 之 为什么别人的软件如此复杂我的如此简单 网络安全 --- 应知应会 之 什么是旁站 应知应会 --- 如何查询备案 软件神器 --- 格式转化 之 jpg 2 svg 网络安全 --- CTF打靶 之 flag搜索 软件神器 --- 互联网测速 之 软件神器 --- 局域网测速 之 iperf 常见问题解决 --- 模拟器USG6000打开后,启动设备失败,错误40 软件研发 --- AI网络 之 ensp配置生成 软件研发 --- AI编程 之 极简流程 软件研发 --- AI生图产品比较 常见问题解答 --- 为什么我的服务一直被人DDOS 软件研发 --- 开发万能格式转化工具 网站神器 --- 在线格式转化 之 文档转md 术语俗话 --- 什么是云电脑 常见问题解决 --- 如何在没有安装杀毒软件的情况下知道这个文件是不是牧马 常见问题解决 --- Win10下VMware 17安装VMware Tools选项灰色/失效解决办法 - GKLBB 常见问题解决 --- 云电脑报错 :PAGE FAULT IN NONPAGED AREA - GKLBB 记一次牧马的发现 人生感悟 --- 为什么我们生活中同一件事有多个品牌,他们到底有什么区别 软件运维 --- 云电脑安装打印机 常见问题解决 --- 网络打印默认端口 常见问题解决 --- 京瓷打印云电脑无法设置双面打印 软件研发 --- 网络安全 之 brupsuite如何设置上游袋里 术语俗话 --- 什么是同步和异步 我的目标 软件研发 --- dify配置 之 markword转word带有简单样式的方法 软件研发 --- 接口文档格式 常见问题 --- dify 的 deepseek是旧模型版本 OWASP 非营利性开源社区 计算机标准化组织 术语俗话 --- POSIX 就是 Unix 世界的"普通话",大家说同一种语言就能互相理解。 我的数字生活唯一选择 软件开发 --- 安卓开发 之 命名空间隔离 术语俗话 --- 页面对齐、 跨页 计算机的哪些人 --- 社交之王 马克·扎克伯格 计算机的哪些人 --- 重新定义新能源 之 埃隆·马斯克 软件研发 --- AI生成ppt word excel pdf的开发关键 软件研发 --- AI应用开发 之 AI生成Word 人生感悟 --- 致可悲的人 - GKLBB 软件研发 --- pdf 表格图片 转 excel 常见问题解决 --- 装有系统的固态硬盘错误 人生感悟 --- 什么是行业黑话 术语俗话 --- Kubernetes 术语俗话 --- 什么是DBI,和hook什么区别 答疑解惑 --- 为什么苹果手机电池不允许拆卸 代码可视化技术 术语俗话 --- Wrap 函数 人生感悟 --- 逆向工程为什么十分枯燥且无聊 --- 这里引用一句逆向工程核心原理的话 人生感悟 --- 为什么干活时不见同事,活干完了就来了 软件研发 --- AI应用研发 之 提炼提示词 软件研发 --- AI应用开发 之 AI生成PPT最佳方案 基于屏幕-摄像头的单向数据传输方案设计 硬件研发 --- 产品介绍 之 AX6 硬件研发 --- 产品大全 之 SUMAVISION CM50X 应知应会 --- 为什么U盘不识别但是还是可以数据恢复回来 应知应会 --- 为什么我删除了一个文件但是还是可以恢复回来 软件研发 --- AI UI设计 之 PC端效果比对 常见问题修复 --- chrome浏览器白屏 应用安全 --- 逆向工程 之 C++类的本质 软件研发 --- AI提示词开发 之 代码注释提示词 dobby反编译 https://www.cnblogs.com/Un1corn/p/18615567 应知应会 --- 手机作为热点,windows电脑临时作为网关,给其他电脑上网 应知应会 --- 大量小文件如何快速迁移 常见问题解决 --- apk安装过程中闪退 应用安全 --- 安卓逆向 之 dobby框架 在线生成 APK 图标工具推荐 一个开源库 术语俗话 --- 什么是软件即服务 软件神器 --- 常用谷歌插件 应用安全 --- 逆向技巧 之 识别未知函数 人生感悟 --- 为什么两句话可以说明白的事情要500字说明 软件研发 --- Dify 生成 PPT 方案分析 应用安全 --- 逆向技巧 之 IDA未知函数如何识别 https://yuuki.cool/ 应用安全 --- 逆向技巧 之 ELF节(Section) 与 段(Segment) 硬件研发 --- 接口 人生感悟 --- 为什么ld一直爱开会 应用安全 --- 逆向技巧 之 IDA和claude反编译缺陷 应用安全 --- 逆向技巧 之 ida反编译yahfa的so和源码的差异化比对
俗语俗话 --- 纯虚函数
GKLBB · 2026-04-23 · via 博客园 - GKLBB

纯虚函数是就是java中的接口函数

纯虚函数 vs Java 接口函数

结论:大致类似,但不完全相同


相似之处(让你产生这个直觉的原因)

C++

// C++ 纯虚函数
class Animal {
public:
    virtual void speak() = 0;  // 纯虚函数,子类必须实现
};

Java

// Java 接口
interface Animal {
    void speak();  // 接口函数,实现类必须实现
}

这两种写法都在说同一件事:

"我只定义规范,不写具体实现,你来实现它"


关键差异

差异1:纯虚函数可以有函数体,Java接口在JDK8之前不行

C++

// C++ 允许纯虚函数有实现体(罕见但合法)
class Animal {
public:
    virtual void speak() = 0;  // 声明为纯虚
};

// 类外单独提供实现(子类仍然必须重写,但可以主动调用父类版本)
void Animal::speak() {
    printf("我是默认声音");
}

class Dog : public Animal {
public:
    void speak() override {
        Animal::speak();        // 可以主动调用父类的纯虚实现
        printf("汪汪");
    }
};

Java

// Java 8 之前接口函数完全不能有实现
// Java 8 之后才加入 default 方法
interface Animal {
    default void speak() {      // 必须加 default 关键字才能有实现
        System.out.println("默认声音");
    }
}

差异2:抽象类 vs 纯虚函数 的归属不同

C++

// C++:一个类只要有一个纯虚函数,它就自动成为抽象类
// 抽象类里可以混合放:普通函数、普通虚函数、纯虚函数
class Animal {
public:
    void breathe() {            // 普通函数:有实现,不能被重写覆盖
        printf("呼吸");
    }
    virtual void move() {       // 普通虚函数:有默认实现,子类可以选择重写
        printf("移动");
    }
    virtual void speak() = 0;  // 纯虚函数:无实现,子类必须重写
};

Java

// Java 中这三种东西分属两个概念
interface Animal {
    void speak();               // 接口函数:必须实现(对应纯虚函数)
}

abstract class AnimalBase {
    public void breathe() {     // 普通函数:有实现
        System.out.println("呼吸");
    }
    public abstract void speak(); // 抽象函数:必须实现(也对应纯虚函数)
}

差异3:多继承支持不同

C++

// C++:可以同时继承多个含纯虚函数的类(多继承)
class Flyable {
public:
    virtual void fly() = 0;
};

class Swimmable {
public:
    virtual void swim() = 0;
};

class Duck : public Flyable, public Swimmable {  // 同时继承两个
public:
    void fly() override  { printf("飞"); }
    void swim() override { printf("游"); }
};

Java

// Java:类不能多继承,但可以实现多个接口(规避了多继承的二义性问题)
interface Flyable  { void fly();  }
interface Swimmable { void swim(); }

class Duck implements Flyable, Swimmable {       // 实现多个接口
    public void fly()  { System.out.println("飞"); }
    public void swim() { System.out.println("游"); }
}

一张表总结

对比维度C++ 纯虚函数Java 接口函数
强制子类实现
自身可以有实现体 ✅ 可以(罕见) ⚠️ 需加 default
所在结构 抽象类内部 interface 内部
多继承 ✅ 直接支持 ✅ 通过多接口实现
数据成员 ✅ 抽象类可以有 ❌ 接口只能有常量

一句话总结

纯虚函数 ≈ Java 抽象类中的 abstract 方法
纯虚函数所在的抽象类 ≈ Java 的 interface
方向对了,但对应关系不是百分之百精确

免责声明 本文档所有内容仅供安全研究、学术交流与技术学习使用,严禁用于任何未经授权的逆向破解、网络攻击、隐私窃取、恶意软件开发及其他违反《中华人民共和国网络安全法》《数据安全法》等法律法规的行为,使用者应确保已获得目标软件权利人的合法授权并自行承担因使用本文档内容所产生的一切法律责任与后果,作者不对任何直接或间接损害承担任何责任,继续阅读即视为您已知悉并同意上述全部条款。