在 Parrot(鹦鹉)例子中,我们用接口 Flyable 来表示飞行能力,Talkable 表示说话能力,但它们并不包含具体实现。而 Parrot 同时具有这两种能力,所以我们为 Parrot 类同时实现了 Flyable 和 Talkable 这两个接口。同样我们还可以定义一个Swallow(燕子)类,但燕子只有飞行能力,所以我们只需要为 Swallow 实现 Flyable 就行了。因为它们各自的的飞行方法有所不同,所以它们有各自关于飞行的具体实现。
2*5Z|
3aX v*1UNXU\ 另外,正因为一个类可以同时实现多个接口,使得Java的面向对象特性变得非常灵活。运用这种特性,我们可以实现类似C++语言中多继承那样的特性,甚至更灵活的一些特性。下面我们来讨论一下接口在实际中的应用。
>9(lFh0P [C)-=.Xx)j 二、用接口来定义一些全局变量
Be+vC=\K d:6?miMH]t 因为接口内的字段都是static和final的,所以我们可以很方便的利用这一点来创建一些常量。例如:
xGJ{_M - public interface Constants {
- String ROOT = "/root";
- int MAX_COUNT = 200;
- int MIN_COUNT = 100;
- }
l-"$a8jn2 在使用时可以直接用Constants.ROOT这样的形式来引用其中的常量。我们还可以用下面这种方法来创建初始值不确定的常量。
E[>4b7{g: - public interface RandomColor {
- int red = Math.random() * 255;
- int green = Math.random() * 255;
- int blue = Math.random() * 255;
- }
ewSFB <
N 其中red、green和blue的值会在第一次被访问时建立,然后保持不变。
T"XP`gk w9h\J#f 三、用接口来定义基本数据结构
i!<