java类的好兄弟—接口
提到接口,我先提出几点让大家有个大致理解叭:(最后两点可以慢慢理解,不必刻意深究){接口可以理解为一个特征提取器,提取不同事物的特征}
1.接口和类是并列的关系,只不过是作用不同罢了;
2.有时候要从几个类中派生出一个子类,继承它们所有的属性与方法,但是java不支持多重继承,有了接口,便可以实现多重继承的效果;
3.有时候要从几个子类中抽取一些共同的行为特征,而它们之间又无子父类关系,仅仅是相同的行为特征而已(如打印机和鼠标都用的是USB接口一样)
4.接口时一种规范,定义的一组规则,体现了现实世界中“如果你是/要···则必须能···”的思想(继承是一个“是不是”的关系,而接口是“能不能”的关系)
5.接口是契约,标准,规范;制定好大家都得遵守。
接口
一.使用:
1.接口用interfance定义的
interface Testm{ }
2.定义接口成员:
由于现在大多数已经用JDK8了,所以接口成员包括:全局常量(final的变量),抽象方法(abstract型的),静态方法和默认方法(JDk7只有前两项)
特别的,针对抽象方法和全局常量可以分别省略public abstract和public static final。
public abstract void mode(){ }
void mode(){ } //这两种是一样的,但是省略部分是存在的
public static final int wide=100;
int wide=100; //这两种是一样的,但是省略部分是存在的
3.接口中是不可以定义构造器,接口不可以实例化。
4.java中用类去实现接口“implement”(使用位置与extends类似)
实现中包括对接口中的抽象类进行重写
class iphone implements telephone { }
//其中,telephone是一个接口
5.java可以实现多接口,打破了类的单继承原则。
例如:
class family extends Object implements dad,mum···{ }
//···表示可以实现多个接口的实现,同时也可见继承可以同时进行
6.接口可以继承接口
7.接口的使用,体现了多态性
8.最后,总结下叭:记住extends和implements的先后顺序;实现接口的类中必须提供接口中所有方法的具体实现内容,方可实例化,否则,仍为抽象类;接口是一抽象类,这种抽象类只包含变量,方法的定义,而无变量和方法的实现。