微信公众号: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技术,跟我一起学习吧
长按识别二维码关注