Java :抽象类的使用及其注意事项

抽象类的使用及其注意事项

概述

加深对抽象类概念的理解及熟悉该类的使用

1.什么是抽象类

通俗的说,不是具体的东西,都是抽象的,那么在java中,可以理解为不是具体的类,就是抽象类。对抽象类的理解,需要结合抽象类的特点及其使用方法。

2.为什么要有抽象类

在学习完面向对象的继承之后,我们都遇到过一个问题,对于子类继承的父类方法,如果子类有特殊的实现需求,那么,无论父类方法实现得如何,子类都需要对继承的方法进行重写(复写),那么,父类的该方法,可不可以不进行实现呢?

答案是可以的,所以就有了抽象类。抽象类的出现,就是为了让子类继承的,从而更好的实现子类功能。

3.抽象类的特点

1)抽象类使用 abstract 关键字修饰;

abstract class Abs类名{
}

2)有一个抽象方法的类一定是抽象类;

3)一个抽象类可以没有抽象方法;

4)抽象类中可以没有抽象方法,其存在的意义,是为了防止外界创建对象。防止外界创建对象,有利于减少在调用方法时内存占用(无需创建对象)(比如调用静态方法时无需创建对象)。各类型方法类均有防止外界创建对象的方式。

防止外界创建对象的方式有: a.构造方法私有化 b.抽象类 c.接口 d.内部类

5)抽象类不能够实例化,这里说的实例化是通过new构造方法实例 ;

如果需要"实例化"抽象类,怎么做 --> 利用多态,父类引用指向子类对象。

7)抽象类也可以创建匿名内部类对象匿名内部类的格式: new 类名() {重写方法}

8)抽象类的子类特点:

a.如果一个子类想要继承抽象类,就必须实现抽象类中的所有的抽象方法

b.如果一个子类不想要实现抽象类中的抽象方法,子类必须升级为抽象类

9)抽象类和普通类的区别:

抽象类中是否有 常量 成员变量 成员方法 构造方法 静态方法?

有的话又有什么意义呢?

成员变量 成员方法 构造方法: 提供给子类继承。

常量 静态方法: 直接类名调用。

构造方法:帮助子类初始化 父类继承下去的成员,减少子类构造方法的代码量。

10)private、final、native、static、protected、public ,哪些可以修饰抽象方法,哪些不可以,说出为什么?

private、final、native修饰后无法继承,与抽象方法冲突。

static 修饰后,方法需要具体的实现, 抽象方法无意义

protected public 和 抽象方法可以共存

11)抽象类的本质就是一个彻头彻尾的服务类,所有的成员都给子类使用,自己不能实例化,燃烧自己,服务子类

抽象类可以作为一个模板使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值