在 Parrot(鹦鹉)例子中,我们用接口 Flyable 来表示飞行能力,Talkable 表示说话能力,但它们并不包含具体实现。而 Parrot 同时具有这两种能力,所以我们为 Parrot 类同时实现了 Flyable 和 Talkable 这两个接口。同样我们还可以定义一个Swallow(燕子)类,但燕子只有飞行能力,所以我们只需要为 Swallow 实现 Flyable 就行了。因为它们各自的的飞行方法有所不同,所以它们有各自关于飞行的具体实现。
kV"';a 3EB8ls2 另外,正因为一个类可以同时实现多个接口,使得Java的面向对象特性变得非常灵活。运用这种特性,我们可以实现类似C++语言中多继承那样的特性,甚至更灵活的一些特性。下面我们来讨论一下接口在实际中的应用。
q.i@Lvu# LoUi Yf 二、用接口来定义一些全局变量
cl{x5>.'# f5zxy!dhKS 因为接口内的字段都是static和final的,所以我们可以很方便的利用这一点来创建一些常量。例如:
_7.Wz7 ]b - public interface Constants {
- String ROOT = "/root";
- int MAX_COUNT = 200;
- int MIN_COUNT = 100;
- }
Sai_rNRWB 在使用时可以直接用Constants.ROOT这样的形式来引用其中的常量。我们还可以用下面这种方法来创建初始值不确定的常量。
2;.7c+r0 - public interface RandomColor {
- int red = Math.random() * 255;
- int green = Math.random() * 255;
- int blue = Math.random() * 255;
- }
-fVeE<[ 其中red、green和blue的值会在第一次被访问时建立,然后保持不变。
lY!`<