Java学习之:抽象类

在开发中,不要直接继承实现好的类,而要继承抽象类或者实现接口。
普通类无法强制要求子类覆写方法,所以产生抽象类和接口。

(一).抽象类的定义与使用
1.抽象类的定义与使用

抽象类比普通类多了抽象方法(0…N)(是普通类的超集)
抽象类使用abstract关键字定义
抽象类不能直接实例化对象

抽象方法:使用abstract关键字定义并且没有方法体的方法。
public abstract void print();

本地方法(调用C或者其他语言的同名方法):public native void print();
没有方法体的方法不一定是抽象方法,也有可能是本地方法。

2.抽象类的使用原则

(1)抽象类必须有子类(abstract 与 final 不能同时出现,否则编译时出错)
(2) 子类(不是抽象类)必须覆写抽象类的所有抽象方法
(3)抽象类可以利用子类向上转型实例化父类对象
(4)由于抽象类强制要求子类覆写抽象方法,因此abstract 不能与 private 一起使用(编译出错);

3.抽象类的相关规定(考点)

3.1 *****
抽象类存在构造方法,并且子类也按照实例化流程,先调用抽象类的构造方法,再调用子类的构造方法。
3.2
抽象类可以不定义抽象方法,但此时仍然无法直接实例化对象。
3.3
finalabstract不能同时出现;privateabstract不能同时出现。
3.4
抽象类也分为外部抽象类与内部抽象类。

内部抽象类的抽象方法与外部抽象类的抽象方法无关。

当前直接继承哪个抽象类,就覆写其抽象方法。(若直接继承外部抽象类,则只需要覆写外部抽象类的所有抽象方法即可)

(二)对象实例化流程
  1. 类加载
  2. 类对象的空间开辟
  3. 类对象的构造方法初始化
(三)模板设计模式

学习设计模式方法:找到第三方

开闭原则(OCP):一个软件实体如类,函数,接口应该对扩展开放,对修改关闭。

模板方法定义了一个算法的步骤(封装算法),并允许子类为一个或多个步骤提供具体实现

第三方:模板类(模板方法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值