Java 抽象类
来源:互联网 发布:淘宝摄影棚用什镜头 编辑:程序博客网 时间:2024/06/06 00:17
1、什么是抽象类?
抽象类前使用abstract关键字修饰,则该类为抽象类
2、抽象类有什么作用?
限制规定子类必须实现的方法,但不关注实现细节
3、抽象类应用场景?
1)在某些情况下,某个父类只是知道子类应该包含怎么样的方法,但无法准确知道这些子类如何实现这些方法
2)从多个具有相同特征的类抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免了子类设计的随意性
4、抽象类的使用规则?
1) abstract 定义抽象类
2) abstract 定义抽象方法,只有声明,不需要实现
3) 包含抽象方法的类是抽象类
4) 抽象类中可以包含普通方法,也可以没有抽象方法
5、使用抽象类应该注意哪些?
1) 抽象类不能直接实例化,我们通常定义他为引用变量指向子类对象
2) 继承抽象类,必须实现抽象类的抽象方法(换句话说,如果子类没有全部实现父类定义的抽象方法,那么子类依然还是个抽象类,必须用bastract修饰)
3) 抽象类是特殊的普通类,可以有普通方法
4) 抽象方法没有方法体,以分号结束
注意 : 抽象类同样可以包含属性、方法(普通方法和抽象方法)、构造器、初始化块等。但是抽象类的构造器不能用于实例化,主要是用于被器子类调用(你可以这么理解,假设可以实例化,那么调用抽象方法有意义么?)。
定义一个抽象类
public abstract class Telephone { //注意 : 抽象方法没有方法体,以分号结束 public abstract void call(); public abstract void sendMessage(); }
//子类继承抽象类
public class SmartPhone extends Telephone { @Override public void call() { System.out.println("通过语音打电话"); } @Override public void sendMessage() { System.out.println("通过语音发信息"); }}
main函数
//父类引用指向子类对象 (SmartPhone 类型) Telephone tel2 = new SmartPhone(); tel2.call(); tel2.sendMessage();
6、模板方法设计模式
在定义功能时,功能的一部分是确定的,但是有一部分不确定,而确定的部分在使用不确定部分,那么这时就将不确定的部分暴露出去,由该类的子类去完成。
有点 : 提高扩展性、提高复用性
如何使用呢 ? 举个例子 : 计算一段程序的运行时间
public abstract class Tool { public final void getTime(){ //获取当前时间 long start = System.currentTimeMillis(); // 这边写程序的执行代码 runCode(); // 获取结束时间 long end = System.currentTimeMillis(); //计算时间并输出 System.out.println("runtime:"+(end-start)); } public abstract void runCode();}// 子类直接继承 实现 runCode() 即可
demo 地址 : http://download.csdn.net/download/qq_18505715/9849928
- java 抽象类,抽象方法
- java 抽象类,抽象方法
- java抽象函数,抽象类
- Java抽象类抽象方法
- java--抽象类、抽象方法
- java抽象和抽象类
- java抽象类、抽象方法
- java抽象类抽象方法
- java--抽象类/抽象方法
- java中的抽象类
- Java中的抽象类
- Java抽象类
- java抽象类
- java 抽象类 Shape
- java抽象类
- Java抽象类
- java抽象类
- java 抽象类
- 日志组件
- Java编程:删除 List 元素的三种正确方法
- HDFS介绍和YARN原理介绍
- android 根据设置的日期获取星期几
- bzoj1579 [Usaco2009 Feb]Revamping Trails 道路升级 分层图dij+heap
- Java 抽象类
- subversionEdge安装
- 序列化和反序列化
- 复习jquery 笔记 版本1.2.1,jquery in action 总结细节
- 游戏引擎架构----动画
- PCIe简介及引脚定义
- os中存储字节,临界区
- react native ViewPagerAndroid 使用详解
- 基于RSA的盲签名算法Java实现