java入门学习(10)—抽象类
2016-01-18 15:35
453 查看
1、抽象类:用abstract修饰的类就是抽象类。
【规则】a:语法-->【修饰符】abstract class 类名 { 属性,方法,构造器,初始化块,内部类,枚举类等 }。
b:抽象类不能被实例化,即无法通过new来调用抽象类的构造器创建实例,即使构造器不是抽象的也不能创建,其只能被当做父类被其他子类继承。
c、抽象类可以包括普通方法,但是定义得有抽象方法的类必须定义成抽象类。
d、可以有构造器,但是构造器不能用于创建实例(但是可以声明变量),主要是用于被子类调用。【默认情况下,子类一定会调用父类的方法一次,没有限制条件就调用没有参数的】
e、继承了一个抽象父类,子类一定要全部实现父类包含的抽象方法,(以及实现了一个接口,但是没有完全实现接口包含的抽象方法),如果不满足这些条件,那么子类也只能定义成抽象类。
2、抽象方法:使用abstract修饰的方法
【规则】a:修饰的方法一定没有方法体,而且参数括号后有分号,
如:【修饰符】abstract 【返回值类型】 方法名();.//语法说明
其中修饰符不能使final,和private,因为抽象方法是需要子类重写加上方法体后进行功能实现的,而final修饰的不能被重写,private修饰的只能在类里使用。
b、作用:应用于模板模式,如子类要实现一个方法,方法名都相同,如计算面积,但是各个实现的具体又不一样(圆和矩形就不一样),这时候就把面积定义成抽象方法,当我们需要使用的时候加上自己独立的方法体进行计算。
c、由b就可知,抽象方法一定要被重写才有意义。
【规则】a:语法-->【修饰符】abstract class 类名 { 属性,方法,构造器,初始化块,内部类,枚举类等 }。
b:抽象类不能被实例化,即无法通过new来调用抽象类的构造器创建实例,即使构造器不是抽象的也不能创建,其只能被当做父类被其他子类继承。
c、抽象类可以包括普通方法,但是定义得有抽象方法的类必须定义成抽象类。
d、可以有构造器,但是构造器不能用于创建实例(但是可以声明变量),主要是用于被子类调用。【默认情况下,子类一定会调用父类的方法一次,没有限制条件就调用没有参数的】
e、继承了一个抽象父类,子类一定要全部实现父类包含的抽象方法,(以及实现了一个接口,但是没有完全实现接口包含的抽象方法),如果不满足这些条件,那么子类也只能定义成抽象类。
2、抽象方法:使用abstract修饰的方法
【规则】a:修饰的方法一定没有方法体,而且参数括号后有分号,
如:【修饰符】abstract 【返回值类型】 方法名();.//语法说明
其中修饰符不能使final,和private,因为抽象方法是需要子类重写加上方法体后进行功能实现的,而final修饰的不能被重写,private修饰的只能在类里使用。
b、作用:应用于模板模式,如子类要实现一个方法,方法名都相同,如计算面积,但是各个实现的具体又不一样(圆和矩形就不一样),这时候就把面积定义成抽象方法,当我们需要使用的时候加上自己独立的方法体进行计算。
c、由b就可知,抽象方法一定要被重写才有意义。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树