- 接口基本上用于开发用户定义的数据类型。
- 关于接口我们可以实现多种继承的概念。
- 通过接口,我们可以实现多态性,动态绑定的概念,因此我们可以在内存空间和执行时间的转弯时提高Java程序的性能。
接口是包含纯粹未定义方法的collection或者接口是纯粹抽象方法的collection。
定义接口的语法:
Interface <interface name> { Variable declaration; Method declaration; }
接口是用于开发用户定义数据类型的关键字。
接口名称表示Java有效变量名称,它被视为接口的名称。
关于接口,我们无法直接创建对象,但我们可以间接创建。
变量声明表示我们使用接口一部分的数据成员类型。
无论我们在接口中使用的变量如何均为通用目的(像PI,E等的变量)。
无论我们在接口中写入的变量,默认属于:
public static final xxx data members
XXX表示数据类型,变量名称和变量值。
必须初始化所有变量(否则将是编译错误)。
方法声明表示我们用作接口一部分的方法类型。
所有接口方法都是未定义的方法,并使这些方法作为摘要,Java程序员在接口方法声明之前明确地编写关键字摘要。
由于所有接口方法都是符合通用目的的,因此他们必须提供通用访问。
要使它作为通用访问,Java程序员无需在方法声明之前明确地编写关键字公众。
因此,默认情况下,所有接口方法都属于公共抽象方法。
例如:
Interface i1 { Int a; //invalid since, initializing is mandatory Int b=20; Void f1 (); Void f2 (); }
说明:
每当我们编译一个接口时,如果接口中没有错误,我们将<接口名称> .class作为中间文件。
语法 - 用于将接口的功能重新运转到类:
[abstract] class <clsname> implements <intf 1>,<intf 2>.........<intf n> { variable declaration; method definition or declaration; };
在上面的语法中,clsname表示继承'n'接口数的类的类的名称。
'实现'是用于将接口特征继承到派生类的关键字。
说明:
当我们将"N"的抽象方法继承到从'n'的接口号码到派生类时,如果派生类为所有'n'的抽象方法提供定义,则派生类被称为具体类。
如果派生类未提供至少一个抽象类的定义,则必须使用关键字摘要作为抽象制作。
- 一类只能延伸一个类。
- 一类可以实现'n'接口。
- 一个接口可以扩展多个接口。
- 接口无法实现或者扩展一个类。由于所定义的东西不能作为未定义的东西制作。
语法-2将'n'number of interfaces on to其他接口:
interface <intf 0 name> extends <intf 1>,<intf 2>.........<intf n> { variable declaration cum initialization; method declaration; };
例如:
interface I1 { int a=10; void f1 (); }; interface I2 extends I1 { int b=20; void f2 (); };
如果一个接口正在拍摄另一个接口的功能,那么该继承被称为接口继承
语法-3:
[abstract] class <derived class name> extends <base class name> implements <intf 1>,<intf 2>.........<intf n> { variable declaration; method definition or declaration; };
每当我们使用两个扩展和实现关键字作为Java程序的一部分时,我们必须始终写入扩展关键字第一个和后者我们必须使用实现关键字。
要点:
- 无法直接创建接口对象,因为它包含它包含的抽象方法。可以间接创建接口的对象。接口的一个对象=实现该接口的该类的对象。
- 基础接口的一个对象包含有关在该接口中声明的那些方法的详细信息,但它不包含有关这些方法的详细信息,这些方法是在派生类中或者派生接口中专门提供的方法。
- 接口不应该是最终的。
- 接口不包含构造函数。