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技术,跟我一起学习吧
长按识别二维码关注
还没有评论,来说两句吧...