abstract
2015-12-07 14:48
204 查看
普通类就是一个完善的功能类,可以直接产生对象并且可以使用,里面的方法都是带有方法体的,
而抽象类之中最大的特点是包含了抽象方法,而抽象方法是只声明而未实现(没有方法体)的方法。
子类(如果不是抽象类)则必须覆写抽象类之中的全部抽象方法;
抽象类对象可以使用对象的向上转型方式,通过子类来进行实例化操作。
抽象类之中能否包含构造方法?可以,因为抽象类之中除了包含抽象方法之外,还包含了普通方法和属性,而属性一定要在构造方法执行完毕之后才可以进行初始化操作;
抽象类之中能否不包含抽象方法?可以,抽象类之中可以没有抽象方法,但是反过来讲,如果有抽象方法,则一定是抽象类,即使抽象类之中没有抽象方法,也不能够被直接实例化;
抽象类能否使用static 声明?如果定义 的是外部抽象类,则不能够使用static声明,可是如果定义的是内部抽象类,那么这个内部的抽象类使用了static声明之后 ,就表示是一个外部的抽象类。
而抽象类之中最大的特点是包含了抽象方法,而抽象方法是只声明而未实现(没有方法体)的方法。
思考:为什么抽象类对象不能够直接new?
一个类的对象实例化之后,可以调用类中的属性和方法,但是抽象类之中的抽象方法没有方法体,如果这样直接调用,那么不就乱了吗?抽象类的使用原则:
抽象类必须有子类;子类(如果不是抽象类)则必须覆写抽象类之中的全部抽象方法;
抽象类对象可以使用对象的向上转型方式,通过子类来进行实例化操作。
关于抽象类的若干疑问?
抽象类能否使用final定义? 不能,因为抽象类必须有子类,final定义的类太监类,不能有子类;抽象类之中能否包含构造方法?可以,因为抽象类之中除了包含抽象方法之外,还包含了普通方法和属性,而属性一定要在构造方法执行完毕之后才可以进行初始化操作;
抽象类之中能否不包含抽象方法?可以,抽象类之中可以没有抽象方法,但是反过来讲,如果有抽象方法,则一定是抽象类,即使抽象类之中没有抽象方法,也不能够被直接实例化;
抽象类能否使用static 声明?如果定义 的是外部抽象类,则不能够使用static声明,可是如果定义的是内部抽象类,那么这个内部的抽象类使用了static声明之后 ,就表示是一个外部的抽象类。
抽象类的应用----------模板
相关文章推荐
- C语言成长学习题(十一)
- VC中实现GCC的2个比较常用的位运算函数
- ipad或iPhone 访问https网站不成功
- Linux系统Rsync数据同步工具
- Intent中的四个重要属性——Action、Data、Category、Extras
- 常量(int const *p 和 int * const p)
- sql缩减功能,增加数据库查询效率
- rz,sz命令的安装
- Msql模糊查询的4种用法
- windows 和 Linux 创建都怎么创建符号连接
- QQ授权网站进行登录~php篇
- 数据结构与算法(3)——矩阵的加、乘、转置运算实现
- 公共Dialog
- jquery 刷新iframe内容示例
- ASP.NET Core 1.0 入门——了解一个空项目
- 网络地址分类
- 计算机技术领域当前的主流技术及其社会需求调查报告
- 成为Java GC专家(3)—如何优化Java垃圾回收机制
- 如何选择GlusterFS版本
- 解析Jquery取得iframe中元素的几种方法