文档介绍:
1、课程名称:接口的基本定义
2、知识点
、上次课程主要内容
1、抽象类的设计是在普通类之上的抽象类;
2、抽象类关键的问题就是约定了子类必须要覆写的抽象方法;
3、抽象类的使用原则:
? 抽象类必须有子类,子类利用extends 关键字来继承抽象类,一个子类只能继承一个父类;
? 抽象类的子类(如果不是抽象类),那么必须要覆写抽象类中的全部抽象方法; ? 抽象类可以利用对象的向上转型机制,通过子类对象进行实例化操作;
、本次预计讲解的知识点
1、接口的基本定义以及使用形式:
2、与接口有关的设计模式的初步认识;
3、接口与抽象类的区别;
3
接口与抽象类相比,接口的使用几率是最高的,所有的设计几乎都是围绕着接口进行的,但是要想把接口彻底弄明白,需要很长一段时间。
、接口的基本概念
接口是一种特殊的类,但是在接口里面的组成与类不同,比类的组成部分简单,主要是由抽象方法与全局常量所组成。而接口使用interface关键字来定义。
范例:定义一个接口
当一个接口定义完成之后,需要遵循如下的步骤进行接口的使用:
? 接口一定要定义子类,子类利用implements 关键字来实现接口,一个子类可以同时实现多个接口;
|-秒杀抽象类的单继承局限,一个抽象类只能够被一子类所继承;
? 接口的子类(如果不是抽象类),那么必须覆写接口中的全部抽象方法; ? 接口的对象利用子类对象的向上转型进行实例化操作;
范例:使用接口
但是这个时候会有这样一种比较神奇的操作。范例:神奇XX操作
注意:关于接口的组成描述
接口里面在定义的时候就已经明确的给出了开发要求:抽象方法和全局常量,所以以下两种接口的定义从本质上讲是完全一样的。
如果在定义接口方法的时候没有使用pulic,那么本质上也不是default权限,而默认就是public。很多时候为了防止一些开发者概念不清晰,所以以后建议大家在定义接口的时候永远都写上public,但是一般都去写abstract.
现在程序之中出现有类、抽象类、接口,这几者之间的联系就需要注意了。
一个普通类如果要实现接口又要继承抽象类,则一定采用先extends
继承抽象类,再implements实现接口,格式:
范例:观察子类的多继承
另外出了以上的结构之外,一个抽象还可以直接实现接口。
范例:抽象类直接实现接口
现在一定要知道,抽象类可以实现接口,但是反过来,接口可不能够继承抽象类,但是一个接口却可以使用extends关键字继承多个父接口。
范例:接口多继承
虽然接口本身只能够有抽象方法和全局常量,但是内部的结构是不受到限制的,一个接口的内部可以继续定义内部类、内部抽象类、内部接口。如果一个内部接口上使用了static定义,那么之个内部接口就属于外部接口。
范例:使用static定义内部接口
总之对于接口的使用可以发现有如下几点:
?
?
? 接口避免了单继承局限,一个子类可以实现多个接口; 接口中的权限统一为public,方法都是抽象方法,90%情况下接口中很少定义全局常量; 所有的内部类结构都不受到定义语法的限制,static定义的一个内部接口就是