首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
【高频面试题】抽象类和普通类区别?
📅 2026/9/15 8:02:21
✍️ 爱科研究院
👁 阅读 3,247
核心一句话普通类可以直接 new 创建实例抽象类 abstract class不能直接 new用来被继承提供部分通用模板。完整对比表对比项普通类concrete class抽象类 abstract class实例化✅ 可以new 类名()创建对象❌ 不能直接 new只能被子类继承后new 子类修饰符classabstract class抽象方法❌ 不能包含抽象方法✅ 可以包含抽象方法没有方法体void test();也可以完全没有抽象方法纯模板抽象类构造方法有构造器new 的时候调用有构造器只是不能自己 new子类实例化时会调用抽象父类构造器成员普通属性、普通方法、静态变量 / 方法普通属性、普通方法、静态变量 / 方法、抽象方法继承子类继承父类抽象方法必须重写所有父类抽象方法如果父类有子类继承抽象类要么重写全部抽象方法变成普通类要么子类也标记 abstract使用目的描述完整实体可以直接创建对象使用模板复用抽取多个子类公共代码定义子类必须实现的规范详细例子普通类示例// 普通类可以直接 new class Cat { String name; public void say() { System.out.println(喵喵); } } // 使用 Cat cat new Cat(); cat.say();抽象类示例带抽象方法// 抽象类 abstract class Animal { String name; // 普通方法公共逻辑子类直接复用 public void sleep() { System.out.println(睡觉); } // 抽象方法没有方法体子类必须实现 public abstract void say(); } // 子类继承抽象类必须实现所有抽象方法 class Dog extends Animal { Override public void say() { System.out.println(汪汪); } } // 使用new 子类抽象类不能 new Animal dog new Dog(); dog.say(); dog.sleep();重点坑抽象类可以没有抽象方法但只要类加了 abstract依然不能 new。abstract class Template { public void commonMethod(){ System.out.println(公共逻辑); } } // Template t new Template(); // 编译报错不能new常见面试问题1. 抽象类有没有构造方法✅有构造方法。抽象类构造器不是给自己实例化用而是子类实例化时super()调用用来初始化抽象类里的成员变量。2. 抽象方法可以是 static /private/final 吗❌ 都不行。static静态属于类抽象方法是留给子类重写矛盾private子类看不到无法实现finalfinal 不能被重写抽象方法必须被子类实现矛盾。3. 抽象类和接口的区别顺带高频对比抽象类abstract class单继承可以有实例变量可以有构造器可以有普通方法 抽象方法。接口interface多实现JDK8 前只能常量 抽象方法JDK8 有 default/static 方法无构造器。抽象类的使用场景多个类有大量公共代码但本身这个父类不应该直接实例化并且部分行为每个子类实现不一样 → 抽象类。例子 支付AliPay、WechatPay都有公共的校验签名、记录日志但支付逻辑各不相同。 把公共代码抽到抽象类AbstractPayment定义抽象方法pay()子类实现 pay。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/9/15 8:02:21
从龙珠超文件名到媒体库刮削:番剧整理实战指南
2026/9/15 8:02:21
2025年东莞工业大风扇厂家控制方式选型指南:从变频到物联网,避开五大坑
2026/9/15 7:57:21
办公文件夹选型指南:从文具到信息管理终端
2026/9/15 8:42:27
GD32H759+RT-Thread工控入门:TrustZone双核环境搭建实战
2026/9/15 8:42:27
AI编程时代程序员生存指南:从编码执行者到问题解决者
2026/9/15 8:42:27
移动端GPU发热优化:纹理读取与后处理带宽的隐性开销
2026/9/15 8:42:27
Spring Boot+Vue构建交通感知与车路协同系统实战解析
2026/9/15 8:42:27
Ansible模块实战解析:从最小执行单元到playbook编排
2026/9/15 8:37:26
RPA选型避坑指南:实施、售后与培训的隐形成本拆解
2026/9/15 0:01:49
2026年NVMe SSD装机避坑指南:PCIe 4.0/5.0、NVMe启动与M.2 Key兼容性实测
2026/9/15 0:01:49
Flutter与OpenHarmony物理动画实现指南
2026/9/15 0:01:49
vscode插件开发之语言服务器,这次让用 TaoToken 接入的 Codex 排查 LSP 服务端连接
2026/9/14 7:37:16
拯救者Y7000黑屏故障排查与维修实战指南
2026/9/14 2:50:57
AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
2026/9/14 11:25:37
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化