1.接口
- 接口格式:
interface {}
- 接口中的成员修饰符是固定的。
例如: 成员常量:public static final
成员函数:public abstract - 接口的出现将“多继承”通过另一种形式体现出来,即“多实现”。
- 例如:
interface Demo
{
public static final int NUM = 4;
public abstract void show1();
public abstract void show2();
}
2.类与接口之间的关系
类与类之间是继承关系,类与接口直接是实现关系。
- 注意事项:
接口不可以实例化。只能由实现了接口的子类覆盖了接口中所有的抽象方法后,该子类才可以实例化。否则,这个子类就是一个抽象类。 - 例如:
class DemoImpl implements Demo
{
public void show1() {}
public void show2() {}
}
3.接口的特点
- 接口是对外暴露的规则。
- 接口是程序的功能扩展。
- 接口可以多实现。
- 类与接口之间是实现关系,而且类可以继承一个类的同时可以实现多个接口。
- 接口与接口之间可以有继承关系。
4.接口和抽象类的异同点
- 相同点:
都是不断向上抽取而来的。 - 不同点:
1,抽象类需要被继承,而且只能单继承。
接口需要被实现,而且可以多实现。
2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。
接口中只能定义抽象方法,必须由子类去实现。
3,抽象类的继承,是is a关系,在定义该体系的基本共性内容。
接口的实现是like a 关系,在定义体系额外功能。
犬按功能分:有导盲犬,搜爆犬。
例如:
abstract class 犬
{
abstract void 吼叫();
}
interface 导盲
{
abstract void 导盲();
}
class 导盲犬 extends 犬 implements 导盲
{
public void 吼叫(){}
public void 导盲(){}
}