抽象类

抽象类主要用于描述信息不具体的事物,包含抽象方法,不允许实例化。它们为子类提供了一个公共接口,子类必须覆盖所有抽象方法才能实例化。抽象类可以有构造方法,用于子类实例化。抽象类可以不只包含抽象方法,也可作为非抽象类的基类,与普通类主要区别在于抽象方法的存在和实例化限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

抽象类:

特点:

1.抽象方法一定定义在抽象类中,都需要用abstract修饰。
2.抽象类不能实例化,不能用new关键字创建对象。
3.只有子类覆盖了 所有的抽象方法后,子类具体化了,子类就可以创建对象。
如果没有覆盖所有的抽象方法,那么子类还是一个抽象类。

抽象类也是不断向上抽取而来的。抽取了方法的声明而不确定具体的方法内容。

 

由不同的子类来完成具体的内容。

 

问题:
1.抽象类中有构造方法吗?
有,抽象类的构造方法不能给抽象类对象实例化,因为抽象类不能创建对象,
但是抽象类有子类,它的构造方法可以给子类对象实例化。

抽象类和一般类的异同点?
相同:都是用来描述事物的,都可以进行属性和行为的描述。
不同:抽象类描述事物的信息不具体,一般类描述事物的信息具体。
代码的不同:
抽象类中可以定义抽象方法,一般类不行。
抽象类不可以实例化,一般类可以。

2.抽象类一定是一个父类吗?
是的,必须子类覆盖抽象方法后,才可以实例化,使用这些方法。

3.抽象类中可以不定义抽象方法吗?
可以的,仅仅是让该类不能创建对象。

4.抽象关键字abstract和那些关键字不能共存呢?
final :final修饰的类不能被继承,final修饰的方法不能被覆盖,而abstract修饰的类要想使用就必须被继承,abstract方法就必须被覆盖。
private :private修饰的方法私有,不能被覆盖。
static :静态修饰的方法能够通过类名.方法的格式调用,而调用一个抽象方法是没有意义的。

关注我的微信公众号(曲健磊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值