关注
区别总结:
区别一:
抽象类只能单继承,接口能多实现;
区别二:
抽象类是一个类,可以被任意权限修饰符修饰,静态和非静态属性,final和非final属性,可以有抽象方法和非抽象方法;接口只能被public,final修饰,只能有静态方法,即使没有显示的声明,而且是不可修改的;
区别三:
抽象的事物不同: 抽象类是对类的抽象,接口是对行为的抽象;抽象类是对整个类抽象,包括属性,行为;
接口是对类的行为(局部)进行抽象;
区别四:
定义的时候,定义抽象类和接口的思想不同; 设计抽象类是自下而上的过程,我子类需要,所以我定义抽象类; 设计接口是自上而下的过程,我接口规范某一行为,我某类需要这个行为,我实现某接口;
核心区别:
调用者使用动机不同,实现接口是为了使用他规范的某一个行为; 继承抽象类是为了使用这个类属性和行为.
再简单点说:
我们知道抽象类是从子类中发现公共部分,然后泛化成抽象类,子类继承该父类即可,但是接口不同。实现它的子类可以不存在任何关系,共同之处。例如猫、狗可以抽象成一个动物类抽象类,具备叫的方法。鸟、飞机可以实现飞Fly接口,具备飞的行为,这里我们总不能将鸟、飞机共用一个父类吧!所以说抽象类所体现的是一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在"is-a" 关系,即父类和派生类在概念本质上应该是相同的。对于接口则不然,并不要求接口的实现者和接口定义在概念本质上是一致的, 仅仅是实现了接口定义的规则而已。
查看原帖
2 1
相关推荐
牛客热帖
更多
正在热议
更多
# 你的实习产出是真实的还是包装的? #
34767次浏览 433人参与
# 牛友的志愿填报指南 #
62959次浏览 484人参与
# 厦门银行科技岗值不值得投 #
15621次浏览 359人参与
# 你的实习什么时候入职 #
366572次浏览 2355人参与
# 学历VS实习,哪个更重要? #
1589次浏览 46人参与
# 工作上你捅过哪些篓子? #
68287次浏览 315人参与
# uu们,春招你还来吗? #
62797次浏览 735人参与
# 面试紧张时你会有什么表现? #
33924次浏览 205人参与
# 面试中,你被问过哪些奇葩问题? #
96019次浏览 1260人参与
# 面试被问到不会的问题,你怎么应对? #
25482次浏览 646人参与
# 你都用vibe coding做过什么? #
21475次浏览 811人参与
# 机械人,签完三方你在忙什么? #
83893次浏览 266人参与
# 你觉得大几开始实习最合适? #
29699次浏览 309人参与
# AI Coding实战技巧 #
15183次浏览 299人参与
# 你见过哪些招聘隐形歧视? #
24404次浏览 214人参与
# 国庆前的秋招小结 #
291174次浏览 1742人参与
# 哔哩哔哩笔试 #
35075次浏览 142人参与
# 如果人生可以debug你会改哪一行? #
12756次浏览 167人参与
# 秋招特别不鸣谢 #
93192次浏览 685人参与
# 应届生被毁约被毁意向了怎么办 #
65302次浏览 313人参与
# 海康威视求职进展 #
132266次浏览 551人参与
查看11道真题和解析