抽象类与接口
来源:互联网 发布:军工网络概念股 编辑:程序博客网 时间:2024/05/21 15:38
一、抽象类
抽象类是从多个具有相同特征的类中抽象出来的父类,以这个抽象类作为子类的模板,规定子类必须覆盖抽象类定义的抽象方法,避免子类设计的随意性。
1.抽象类和抽象方法的使用
抽象类的成员除了抽象方法外,跟普通类一样。
抽象类和抽象方法必须用abstract修饰符修饰。
抽象类可以没有抽象方法,有抽象方法的类必须定义为抽象类。
抽象类不能被实例化,它的构造方法只用于被子类调用。
抽象类的子类必须覆盖父类全部的抽象方法,否则这个子类必须定义为抽象类。
抽象方法只能被public和protected修饰,或者缺省。
抽象方法没有方法体,即没有后面的一对花括号。
抽象方法不能被private,final,static修饰。
2.抽象类与普通父类的区别
抽象类仅仅是作为一个模板的作用,抽象方法体为空,不能实例化,它就是为了继承而存在的,否则没有意义,具有更高的抽象性。
强制子类必须覆盖抽象类的抽象方法,有提示子类的作用,代码具有更强的整体性,方便代码的扩展,更有利于多态的实现。
二、接口
接口是对多个类公共方法的抽象,实现接口的类可以是完全无关的,是一种公共行为规范,规定了实现类要实现的方法。
1.接口的使用
接口的修饰符和接口的成员的修饰符只能是public或者缺省。
接口会自动为成员变量添加 public static final修饰符,也就是说接口内的成员变量只能是常量。
接口会自动为方法添加public abstract修饰符,也就是说接口内只能定义抽象方法。
接口没有构造方法和初始化块。
接口支持多继承,一个接口可以有多个直接父接口,但是接口只能继承接口,不能继承类。如 interfaceA extends interfaceB,interfaceC
一个类实现了接口后,必须覆盖接口中定义的全部抽象方法,否则这个类必须定义为抽象类。
子类继承父类同时实现接口时,implements部分要放在extends部分之后。如 son extenfs father implements interfaceA,interfaceB
2.接口与抽象类的区别
抽象类是对类的抽象,接口是对方法的抽象。
继承抽象类的子类是相似的,实现接口的类可以是完全无关的类。
- 抽象类与接口
- 接口与抽象类
- 抽象类与接口
- 抽象类与接口
- 抽象类与接口
- 抽象类与接口
- 接口与抽象类
- 抽象类与接口
- 接口与抽象类
- 抽象类与接口
- 抽象类与接口
- 抽象类与接口
- 接口与抽象类
- 抽象类与接口
- 抽象类与接口
- 抽象类与接口
- 接口与抽象类
- 接口与抽象类
- 线性判别分析(Linear Discriminant Analysis, LDA)算法分析
- 将证书转换类型
- android到底可以加载多大的图不报OOM错误
- 图上距离与屏幕像素的换算 arcengine
- ajax 和jsonp 不是一码事 细读详解
- 抽象类与接口
- hibernate 一级和二级缓存使用总结
- jq 重复点击
- 搜狐快站插件IDE工作原理解析
- iOS Blog
- 多浏览器支持的一些方面
- IOS自定义图片放右边的Button
- 解开Android应用程序组件Activity的"singleTask"之谜
- 对于OOM的一点注意点