抽象类是什么?它与接口有什么区别?你为什么要使用抽象类?

本文探讨了抽象类的基本概念,指出抽象类不能实例化且可能包含具体实现。对比接口,抽象类允许有非抽象方法,一个类只能继承一个抽象类,而可以实现多个接口。使用抽象类的原因涉及面向对象设计的开闭原则,有助于降低耦合性和提高代码复用。在面试中,分享具体项目中的应用将展现实践经验和设计思维。
摘要由CSDN通过智能技术生成


一、抽象类是什么?

菜鸟教程中指出:
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

简单来说就是:
不能实例化的类称为抽象类。

延伸推论:

  1. 有抽象方法的类是抽象类
  2. 被abstract修饰的类是抽象类

二、抽象类与接口有什么区别?

记住最重要的一点,一个是类,一个是接口(废话),然后开始发散

  1. 抽象类里的方法可以有具体实现,而接口不能。(即抽象类中的方法不一定全是抽象方法)
  2. 一个类只能继承一个抽象类,却可以实现多个接口。
  3. 抽象类可以有静态代码块和静态方法,而接口不能。
  4. 抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量
  5. 子类中实现父类中的抽象方法时,可见性可以大于等于父类中的;而接口实现类中的接口 方法的可见性只能与接口中相同(public)

三、你为什么要使用抽象类?

或者说你在哪里用到了抽象类?
像这样开放性问题,非常适合带动节奏,或者说给面试官积极的暗示。

如果你简单地说:为了重用。减少编

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值