当两个类有个别相同的方法时,那么就可以定义一个接口来统一实现他们,这个借口使得他们求同存异。
我实现了两个类,一个是链表类LinkedIntList,另外一个是数组类ArrayList,这两个类有着共同的方法,尽管他们的实现方法完全不同,但这并不妨碍用一个接口来让他们相同的部分连接起来。
方法:
1.首先应该声明一个接口
public interface IntList {
public int size();
public void add(int a);
}
2.这两个类在定义的时候,显式地声明这个接口,
public class ArrayList implements IntList
public class LinkedIntList implements IntList
随后我们就可以享受Java的多态性了。
public class Main {
public static void main(String[] args) {
IntList list1=new ArrayList();
IntList list2=new LinkedIntList();
pro(list1);
System.out.println();
pro(list2);
}
public static void pro(IntList list)
{
list.add(10);
list.add(20);
System.out.println(list.toString());
}
}
后记:之前听说开发一门编程语言需要哲学,我刚开始还不信,认为规则都是死的,能体现什么哲学性。直到今天我才认识到编程的神韵。比如这个例子,采用的就是“求同存异”,上过历史课的都知道这是什么,让语言有这个特性是这么的自然。语言是对现实世界的模拟,体现的是大师对这个世界的感悟。向那些开发语言的大师们致敬!