2010-03-02 11:03:43
好,看代码:
------------------------------
public class 家长 implements 人{
public void 吃饭(){
//下馆子 }
public void 睡觉(){
//去旅馆睡觉 }
//其它特有方法,比如会见老师,晓之以钱,动之以利等等,不一而足 }
-------------------------------
在调用的时候不需要修改任何代码,还和原来一样:
人 c=new 家长();
学校.开饭(c);
学校.放学(c);
轻松搞定家长的食宿问题!
这样一来学校来再多的客人都没关系啊,绝对可以应付自如,这也就是传说中的可扩展性! 不知道初学者看到这里是不是能够明白接口的作用。如果你还不明白,那么你把人这个接口去掉,自己写一个学校开饭和放学的类,然后再加一个家长这个新新人类进去,看看你的代码是什么样子的,再想一下在人口这么多的中国,万一哪天你的学校里来了成千上万个新新人类你该怎么办! 先声明一下,这个案例可不是我想出来的~~ 然后我们就很好理解了,为什么用别人的东西要实现接口呢?很直接的一个原因是这样一来,编程的复杂度就可能会大大降低了。
Interface是用来定义类的,I并且是一个极度抽象的类,因为它允许人们通过创建一个能够被向上转型为多种基类的类型,来实现某种类似多种继承变种的特性。
Interface接口仅包含方法的声明,而不包含其实现。也就是说,实现接口的每个类都必须为该接口中声明的每个方法提供实现。
Interface接口方法定义不能包含任何属性(如 public 或 private),但在实现接口的类的定义中,已实现的方法必须标记为 public。
通过 extends 语句可以使用一个接口继承多个接口,通过 implements 语句可以使用一个类继承多个接口。