接口
——一种特殊的抽象类,关键字interface
interface 接口名{
//接口的成员,都有固定修饰符
//一般常有:
//1.常量,全局常量有固有的修饰符 publicstatic final
//2.抽象方法固定修饰符 publicabstract
}
接口定义特点:
1,接口用interface来定义。
2,接口中的成员都有固定的修饰符。
3,接口不能被实例化,。
4,接口必须由其子类覆盖了所有的抽象方法后,该子类才可以实例化。 否则,该子类还是一个抽象类。
5,接口中的成员都是public修饰的。
简单例子:
//定义接口
package com.dragon.src;
public interface InterfaceDemo {
public final static int num = 3;
public abstract void show();//抽象方法
}
//实现接口
package com.dragon.src;
public class InterImpl implements InterfaceDemo{
//覆盖方法
@Override
public void show() {
// TODO Auto-generated method stub
System.out.println("接口实现类,打印数字"+num);//使用接口里的num
}
}
//主函数
package com.dragon.src;
public class InterDemo {
/**
* @param args
*/
public static void main(String[] args) {
InterImpl impl = new InterImpl();
impl.show();
}
}
注意:
类与类之间是继承关系,类与接口之间是实现关系。
接口的出现好处:
接口可以被多实现。这就是多继承机制在java语言被改良后的结果。一个类可以实现多个接口。
例子:
/**
*类与类之间是继承,而且是单继承。
*类与接口之间是实现,而且可以多实现。
*接口与接口之间是继承关系,而且可以多继承。
*/
interface DemoA
{
void showA();
}
interface DemoB //extends DemoA
{
void showB();
}
interface DemoC extends DemoB,DemoA
{
void showC();
}
class DemoD implements DemoC
{
public void showA(){}
public void showB(){}
public void showC(){}
}
接口的优点: |
(1)接口的出现降低了耦合性。 |
(2)接口的出现提高了扩展性。 |
(3)接口就是对外暴露的规则。 |
|
接口和抽象类的区别: |
(1) 类是用来继承的,只能单继承。 接口是用来实现的,可以多实现。 |
(2) 类中可以定义非抽象内容,直接提供给子类使用。 接口中只能定义抽象方法,需要子类全部实现。 |
(3) 类存在着继承关系,是is a关系。 接口的实现关系,是 like a 关系。 |
共同点: |
它们都是不断抽取而来的。共性的抽象 |