首先,理解多继承,什么是多继承----多继承就是可以继承多个父类,但是Java不能实现多继承啊。怎么办,所以 这里用到接口了!——————写在前面
Java中的接口和现实中的接口类似,但又有不同,现实中的接口是各个线路汇聚然后分开的地方,比如,飞机场,码头,十字路口,管道接口,线路接口,都可以理解成接口,现实中的接口一般是起到合流,分流的作用。
Java接口作用;解决无法实现多继承的手段
Java接口没有实际的方法实现,只是定义了一些空壳,一个类可以通过实现接口来实现多重继承关系。啥意思? 举个栗子。ps【就拿秦晋之好来说接口】
三个人物:秦穆公,晋文公,怀嬴【秦穆公之女】
晋文公的老子晋献公年迈昏庸,留给他的家业就少了很多,还被晋国国君欺辱,自然是不甘心,所以,晋文公便取了秦穆公的女儿怀嬴,在秦穆公的帮助下夺取晋国国君之位,成就霸业!
把晋文公理解子类,晋献公理解其父类,怀嬴又是子类,秦穆公是父类【子类可以接口,接口一般是抽象类】或者理解成怀嬴是“接口”,当自己晋文公自己的力量不能对抗国君时,便借助怀嬴得到秦穆公的帮助登上帝位,
注意事项:
1.接口是特殊抽象类,提供方法原型,没有具体表现,即方法具体实施
2.子类必须提供父类中抽象方法的实现方式。
3.接口中只能包含抽象方法和常量,不能有,变量,初始化块和构造函数
接口的声明
【修饰符】interface 接口名【extends】父类接口名{
常量;
方法:抽象
}
注意事项:与Java的类文件一样,接口文件的文件名必须与接口名相同
使用接口:
接口不能单独实例化,要想实例化接口,必须接口的实现类来完成。接口的实现类,必须全部实现接口中所有方法。
【修饰符】 class <类名> 【extends 父类名】【implements 接口列表】{
}
不严密理解为这样: 接口是一个类,里面有常量和方法,然后再一个类中调用,重写接口中的方法,但是这个调用不是与以往调用一样,是有区别的,要用implements这个关键字来操作。调用完后实例化
接口的实例化
接口名【类名】 对象名=new 接口的实现类();
接口特征归纳:
1.接口没有构造方法,不能被实例化
2.一个接口不能实现另一个接口,但是可以多继承其他接口
3.接口中的成员变量默认都是 public final,static 类型的,接口中成员变量为常量
4.接口的方法默认是public ,abstract类型的,可省略,没有具体方法,不能被实例化
5.接口只能含有static final类型的成员变量 和public abstract类型的1成员方法。变量必须初始化,方法必须是抽象方法,否则会报错。
6.Java 接口必须通过类来实现它的实现类来实现抽象方法。
7.接口不能继承普通类
8.接口可以继承多个接口