Java学习 - 接口
Java 接口
接口提供了一种方法声明与方法实现相分离的机制,使得接口的多个类具有共同的行为能力,能够实现运行时多态。
接口(interface)是一组抽象方法、常量和内嵌类型的集合。接口时一种数据类型,采用抽象形式来描述约定,因此接口只有被对应的类实现之后才有意义。
声明接口
// 使用关键字 interface 声明接口,语法格式如下,其中 [] 表示可选项
// [public] interface 接口<泛型> [extends 父接口列表]
// {
// [public] [static] [final] 数据类型 成员变量 = 常量值;
// [public] [abstract] 返回值类型 成员方法[(参数列表)];
// }
例如
public interface Area{ // 可计算面积的接口
public abstract double area(); // 抽象方法声明,计算面积
}
public interface Perimeter{ // 可计算周长接口
public abstract double perimeter(); // 抽象方法声明,计算周长
}
接口与抽象类
- 在Java8出现之前,抽象类和接口内的方法必须都是抽象方法,加abstract,不包含方法体;但在Java8之后,接口不仅可以包含抽象方法,还可以包括默认方法、静态方法
- 一个类、接口可以继承多个接口,但一个类只能继承一个父类(不管是不是抽象类)
- 抽象类的方法不需要在派生类中全部实现;但继承了某个接口的类必须要将接口的全部方法实现
package sduwh;
interface A{
public abstract void show();
}
interface B{
public abstract void print();
}
interface C extends A,B{ // 接口可以继承接口;接口可以多继承,这弥补了Java中类只能单继承的缺点;
}
class Test implements C{
Test(){};
@Override
public void show() {
System.out.println("Class Test implements C,Override option void show()");
}
@Override
public void print() {
System.out.println("Class Test implements C,Override option void print()");
}
}
public class It {
public static void main(String args[]) {
Test a = new Test();
a.show();
a.print();
}
}
接口定义规范
interface Collection{
void add(Object obj);
void delete(Object obj);
Object find(Object obj);
int size();
}
---- suffer now and live the rest of your life as a champion ----