JavaSE之抽象类

抽象类

对一组对象进行更高层级抽象时, 形成现抽象的类, 就可以定义为抽象类
在这里插入图片描述

抽象类的理解

使用abstract修饰的类就是抽象类,普通类有的实例变量/实例方法/静态变量/静态方法/构造方法等所有成员都可以在抽象类中定义
抽象类也是用一种引用数据类型,可以定义变量,JAVA基本数据类型包括基本数据类型和引用数据类型,其中引用数据类型包括:类,接口,数组,枚举
抽象类不能实例化对象,抽象类的引用需要赋值子类对象

抽象类的几个问题

  1. 为什么定义抽象类?
    对事物进行进一步抽象可以形成抽象类, 如动物类,交通工具类,食品类
    含有抽象方法的类必须定义为抽象类

  2. 如何定义抽象类
    使用abstract修饰的类

  3. 为什么定义抽象方法?
    当一个类的某个操作无法具体实现时,这个操作可以定义为抽象方法
    使用abstract修饰方法, 只有方法的声明, 没有方法体

  4. 如何使用抽象类
    抽象类一般作为其他类的父类存在
    子类继承了抽象类, 子类需要重写抽象类中所有的抽象方法, 如果子类没有重写所有的抽象方法,子类也需要定义为抽象类
    注意:
    抽象类中不一定含有抽象方法

  5. 抽象类不能实例化对象, 需要赋值子类对象

  6. 抽象类的引用可以赋值匿名内部类对象

  7. .abstract 不能用来修饰属性,构造器,private,final,static。因为abstract修饰的类或方法都是要靠子类去继承和实现,首先属性不存在"尚未实现"这一说法,
    同样构造器,static和private本身就不被子类继承,final修饰的类不被继承,修饰的方法不能被重写 所以和“abstract修饰的类或方法都是要靠子类去继承和实现”这一说法矛盾。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值