Java中关于接口的总结
Java中的接口
1.什么是接口
-
接口是一个与类相似的结构,用于为对象定义共同的操作。
-
使用接口的目的是为了指明相关或者不相关类的对象的共同行为。
-
在Java中,接口被看作是特殊的类,与抽象类类似,不能使用new来创建接口的实例
2.接口的定义方式
public interface Demo {
public static final int k = 5;
public abstract void method();
}
因为所有定义在接口内的方法都是抽象方法,不能有具体的实现,所有定义在接口内的属性都public static final 来修饰的,因此,前面的修饰符也可以省略
public interface Demo {
int k = 5;
void method();
}
上下两种定义方式是等价的
3.接口的实现方式
public class Person implements Demo {
public void method() {
System.out.Println("在类中来具体实现接口中的抽象方法");
}
}
如果一个类实现了一个接口,而没有实现接口的所有方法,则它必须被标注为abstract(抽象类)。一个抽象类的子类必须实现它未完成的方法,假如该项子类仍不会实现接口的所有方法,那么该项子类依然需要被标注为abstract。
在Java中,接口是可以多继承的。
4.关于接口的一些知识点
- 接口中的所有成员变量都默认是由public static final修饰的。
- 接口中的所有方法都默认是由public abstract修饰的。
- 接口没有构造方法。
- 实现接口的类中必须提供接口中所有方法的具体实现内容。否则实现该接口的类定义为抽象类
- 接口也可以继承另一个接口,使用extends关键字。
5.接口使用的场景
个人认为,接口和抽象类十分相像,两者都是声明了抽象方法,然后由继承或者实现它的子类来具体实现抽象方法的内容。但是在使用上却有所不同。
举个与笔记本电脑有关的例子吧。
商家在制作笔记本时,就知道未来用户会有使用外设的需求,但是他们只负责生产笔记本电脑,所以他们就设计了许多的接口,然后就出场了,之后的事情不归他们管,电脑上的这些USB,Type-c接口,就好比接口,里面有两个抽象方法,连接和断开。用户在拿到笔记本后,想要接机械键盘,他们就插入这个接口,连接鼠标,就插入这个接口,就好比键盘类和鼠标类来实现这个同一个接口,然后这个两个类分别通过自己的方式来连接和断开设备,有的时候你的线不匹配(例如MacBook pro),你就需要一个转接口,就好比一个接口继承另一个接口。
因此我们可以总结一下,使用接口的场景
- 我们需要实现多态时
- 要实现的方法不是当前类必要的
- 要可以为不同种的多个类来实现同样的方法
仔细对比一下以上的例子,就可以大概想明白了。
在Java工程中,类的设计与使用是十分重要的,可以大大降低耦合度,所以如何设计一个好的类,需要长期的实践与总结。