Java: 接口
接口:
在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。
接口实现和类继承的规则不同,为了数据的安全,继承时一个类只有一个直接父类,也就是单继承,但是一个类可以实现多个接口,接口弥补了类的不能多继承缺点,继承和接口的双重设计既保持了类的数据安全也变相实现了多继承。
Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java接口比Java抽象类更抽象化。但是接口不是类,不能使用new 运算符实例化一个接口。如 x=new comparable(......);//这个是错误来的。但是可以声明接口变量Comparable x; //这是允许的。
Java接口的方法只能是抽象的和公开的,Java接口不能有构造器,Java接口可以有public、静态的和final属性。即接口中的属性可以定义为 public static final int value=5;
接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。(引用自百度百科)
初期理解:可以理解是一个特殊的抽象类
当抽象类中的方法都是抽象的,该类可以通过接口的形式来表示。
关键字:interface,用于定义接口
接口定义的格式特点:
1,接口常见定义:常量,抽象方法
2,接口的成员都有固定的修饰符,如果接口中没有写这些修饰符,系统会自动加上
常量:public static final
方法:public abstract
记住:街口中的成员都是public的
因为有抽象方法,接口是不可以创建对象的,需要被子类实现,子类对接口的抽象方法全都覆盖后子类才可以实例化,否则子类也是一个抽象类。
接口可以被类多实现——一个类可以同时实现多个接口,也是对多继承不支持的转换形式。
一个类可以只可以继承一个类,但可以实现多个接口,这样可以扩展类的功能;
但接口和接口之间可以多继承。
接口的特点:
1.接口是对外暴露的规则
2.接口是程序的功能扩展
3.接口可以用来多实现
4.类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口
5.接口与接口之间可以有继承关系,且可以多继承
1 interface Inter 2 { 3 public static final double PAI = 3.14; 4 public abstract void show(); 5 } 6 7 interface Inter2 8 { 9 10 public abstract void method(); 11 } 12 13 class InterInstance implements Inter,Inter2 14 { 15 public void show() 16 { 17 18 } 19 public void method() 20 { 21 22 } 23 } 24 25 class InterfaceDemo 26 { 27 public static void main(String[] args) 28 { 29 InterInstance ii = new InterInstance(); 30 System.out.println(ii.PAI); 31 System.out.println(Inter.PAI); 32 System.out.println(InterInstance.PAI); 33 } 34 }