普通类可实例化,包含具体方法,用于直接使用;2. 抽象类用abstract定义,不能实例化,含抽象方法需子类重写;3. 抽象类作模板强制结构,普通类实现完整功能;4. 抽象类必须被继承,且Java单继承限制下只能继承一个抽象类。

普通类和抽象类在 Java 中有明显%ignore_a_1%,主要体现在定义、使用方式以及设计目的上。
1. 定义与实例化
普通类是可以被实例化的类,可以直接通过 new 关键字创建对象。它包含具体的方法实现,也可以包含成员变量和构造方法。
抽象类使用 abstract 关键字定义,不能被实例化。也就是说,不能直接 new 一个抽象类的对象。它的存在是为了被继承,供子类扩展。
2. 方法的实现要求
普通类中的所有方法都可以是具体实现的方法(除非是接口或默认方法等特殊情况),每个方法都有方法体。
立即学习“Java免费学习笔记(深入)”;
抽象类可以包含抽象方法和具体方法。抽象方法没有方法体,只有声明,子类必须重写这些抽象方法(除非子类也是抽象类)。
稿定抠图
AI自动消除图片背景
76 查看详情
抽象方法:abstract void doSomething(); 具体方法:public void run() { System.out.println(“Running”); }
3. 设计目的不同
普通类用于描述一个完整的可复用的数据结构和行为集合,适合直接使用。
抽象类通常用于表达一种“模板”或“框架”,代表一组相关类的共同特征,强制子类遵循一定的结构。它更适合于具有“is-a”关系的继承体系中。
4. 继承限制
普通类可以被继承,也可以不被继承,完全取决于需求。
抽象类必须被继承才能使用其功能。而且 Java 是单继承的,一个类只能继承一个抽象类(但可以实现多个接口)。
基本上就这些。抽象类更强调代码的结构设计和约束,而普通类更注重实际的功能实现。选择使用哪种,取决于你是否需要定义一个不完整的、等待子类补充的类结构。
以上就是java 中普通类和抽象类有哪些区别?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1020243.html
微信扫一扫
支付宝扫一扫