Java基础知识(五)--抽象类&接口

微信公众号:Java患者
专注Java领域技术分享

抽象类

抽象类概述

  • 抽象类用来描述一种类型应该具备的基本特征与功能,具体如何去完成这些行为由子类通过方法重写来完成.

抽象类特点

  • 抽象类和抽象方法必须用abstract关键字来修饰

  • 抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是接口

  • 抽象类不能实例化,那么抽象类如何实例化?

    • 按照多态的方式,由具体的子类实例化.其实这也是多态的一种,抽象类多态.

  • 抽象的子类

    • 要么是抽象类

    • 要么重写抽象类中的所有抽象方法

抽象类的成员特点

  • 成员变量 : 既可以是变量,也可以是常量.abstract是否可以修饰成员变量?不能修饰成员变量

  • 构造方法 :  有

    • 用于子类访问父类数据的初始化

  • 成员方法: 既可以是抽象的,也可以是非抽象的.

抽象类的成员方法特性

  • 抽象方法: 强制要求子类做的事情

  • 非抽象方法: 子类继承的事情,提高代码复用性

  • abstract不能和哪些关键字共存

    • private : 因为一个abstract方法需要被重写

    • final: 因为一个abstract方法需要被重写,被final修饰的方法是不能被重写的

    • static : 因为一个abstract方法没有方法体.静态方法需要对方法体执行内容分配空间(abstract是没有实现的,不能产生对象,而static是属于类的,类本身是已经存在的对象)

    • synchronized : 是同步的,然而同步需要具体的操作才能同步(即使用synchronized 关键字是需要有具体的实现同步的操作的)

    • native: 他们本身的定义就是冲突的.native声明的方法是移交本地操作系统实现的,而abstract是移交子类对象实现的,同时修饰的话,导致不知道谁实现声明的方法.

接口

接口概述

  • 从狭义的角度讲就是指java中的interface

  • 从广义的角度讲对外提供规则的都是接口

接口特点

  • 接口不能实例化

    • 按照多态的方式来实例化

  • 接口的子类

    • 可以是抽象类,但是意义不大

    • 可以是具体类,要重写接口中所有抽象方法

接口的成员特点

  • 成员变量 : 只能是常量,并且是静态的跟公共的

    • 默认修饰符 : public static final

  • 构造方法 : 接口没有构造方法

  • 成员方法:只能是抽象方法

    • 默认修饰符: public abstract

资料 · 福利

回复 【Java】即可获取最新零基础Java视频资料

回复 【激活】即可获取IDEA、datagrip等系统激活方式

回复 【面试题】即可获取Java技术相关面试题

往期 · 精彩

专注分享Java技术,跟我一起学习吧

长按识别二维码关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值