摘要: 接口提供了多继承功能, 使用系统提供的接口很正常, 自己定义接口才是高级程序猿.
1. 为什么要用接口
Java 中只允许类 A 为类 B 的直接子类, 但不允许它同时还为类 C 的直接子类. 否则容易打架. 例如, B 类和 C 类都定义了 eat() 方法, 而 A 类没有重新定义. 那么, 究竟用哪个类中继承的代码?
有时候确实需要用到多继承. 如鸽子是鸟儿的直接子类, 邮递员不是. 但它们都会送信. 这时候就该接口闪亮登场了.
2. 什么是接口
- 生活中, 接口就是指插座之类, 对于不同的供电单位、不同的手机, 只要插座与插头匹配, 都可以正确充电…
- 对于一般的编程语言, 接口是指函数/方法的头部. 即: 方法的名称是什么, 形式参数是哪些. 根据接口, 我们就可以从外部进行方法的调用, 让它为我们干活儿.
- 在 Java 中, 接口是指特殊的类, 它仅有方法声明, 不能有数据, 也不能有实际的方法体. 这就避免了前面所说的冲突问题.
3. 如何定义接口
package thinking;
public interface Messager {
public void sendMessage();
}//Of interface Messager
这里的接口定义了一个 sendMessage() 方法.
4. 如何使用接口
邮递员类, 继承了人类, 实现了 Messager 接口. 送一次信要减重 50 克.
package thinking;
public class Postman extends Human implements Messager{
public void sendMessage(){
weight -= 50;
}//Of sendMessage
} //Of class Postman
鸟类, 专门为鸽子准备的一个父类.
package thinking;
public class Bird {
/**
* In g.
*/
int weight;
/**
*********************
* The default constructor.
*********************
*/
public Bird(){
weight = 100;
}//Of the first constructor
}//Of class Bird
鸽子, 信鸽. 送一次信要减重 50 克.
package thinking;
public class Pigeon extends Bird implements Messager{
public void sendMessage(){
weight -= 10;
}//Of sendMessage
}// Of class