好处当然是有的,还是以 List<String> list = new ArrayList<String>();为例,我们知道,ArrayList具有对集合中的元素快速查找的特点,但是其增删速度较慢。如果后期我们发现增删速度太慢了,想改用增删速度快的LinkedList,那么我们只用修改这一句代码为List<String> list = new LinkedList<String>();而不用去修改后面大量用lis存取数据的代码,这就极大的提高了代码的扩展性,便于我们后期修改维护。
我们在使用一个子类时,如果不需要调用子类特有的方法,我们尽量用父类引用指向子类对象的方式编写代码。 作者: 陌花╮有意、 时间: 2012-6-15 12:45
List有很多子类,ArrayLIst就是其中之一,之所以写成
private static List<String> list = new ArrayList<String>();
是运用了多态的知识,父类引用指向子类对象,这样有利于以后程序的扩展作者: 柯玲 时间: 2012-6-15 12:50
同意以上童鞋的观点,就是一个多态应用,便于程序的可读性和维护。作者: 王广丛 时间: 2012-6-15 12:53
这应该是为了更好的体现编程时候的面向接口的编程这一原则。
子类是对父类的一个改进和扩充,所以一般子类在功能上较父类更强大,属性较父类更独特, 定义一个父类类型的引用指向一个子类的对象既可以使用子类强大的功能,又可以抽取父类的共性。
例如:定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类 。我这样定义时: Animal a = new Cat();假如以后要发生变化,比如把Cat换成Dog(),这样定义机会直接改就可以,但是如果定义成Cat a = new Cat();则需要改变很多代码才能完成修改维护的功能。