Java 学习之路 之 抽象类 (二十)

本文探讨了Java中的抽象类和抽象方法,包括它们的定义、使用规则以及在多态中的作用。抽象类不能被实例化,但可以包含Field、方法等成分,而抽象方法只有签名,没有实现。抽象类主要用作子类的模板,体现了模板模式的设计思想,允许子类根据需要实现特定的方法。
摘要由CSDN通过智能技术生成

当编写一个类时,常常会为该类定义一些方法,这些方法用以描述该类的行为方式,那么这些方法都有具体的方法体。但在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确地知道这些子类的如何实现这些方法。

抽象方法是只有方法签名,没有方法实现的方法。

1,抽象方法和抽象类

抽象方法和抽象类必须使用 abstract 修饰符来定义,有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法。

抽象方法和抽象类的规则如下。

抽象类必须使用 abstract 修饰符来修饰,抽象方法也必须使用 abstract 修饰符来修饰,抽象方法不能有方法体。

抽象类不能被实例化,无法使用 new 关键字来调用抽象类的构造器创建抽象类的实例。即使抽象类里不包含抽象方法,这个抽象类也不能创建实例。

抽象类可以包含 Field、方法(普通方法和抽象方法都可以)、构造器、初始化块、内部类、枚举类 6 种成分。抽象类的构造器不能用于创建实例,主要用于被其子类调用。

含有抽象方法的类(包括直接定义一个抽象方法;继承了一个抽象父类,但没有完全实现父类,但没有完全实现父类包含的抽象方法,以及实现乐一个接口,但没有完全实现接口包含的抽象方法 3 中情况)只能被定义成抽象类。

归纳起来,可以用“有得有失” 4 个字来描述抽象类。 “得” 指的是抽象类多了一个能力:抽象类可以包含抽象方法;“失” 指的抽象类失去了一个能力:抽象类不能拥有创建实例。

定义抽象方法只需在普通方法上增加 abstract 修饰符,并把普通方法的方法体(也就是方法后花括号括起来的部分)全部去掉,并在方法后增

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值