黑马程序员技术交流社区
标题:
继承问题
[打印本页]
作者:
赵嘉男
时间:
2012-4-25 20:28
标题:
继承问题
为什么有时候要实现了接口或者父类的方法需要implements 、extends 而有些接口可以直接构造对象,比如,Thread 在使用时候需要 classX extends Thread ,Runnable 也是需要继承,而List接口,我可以直接定义自己的Class X,然后就是用List list= new Arraylist自己定义的Class不需要继承关键字,是不是因为构造的问题
作者:
王勃
时间:
2012-4-25 20:36
继承是为了要覆写父类的方法,实现某接口是为了实现某方法。而你你使用List接口时,使用的实现类是ArrayList,你不会去覆写ArrayList里面的方法吧,
既然不覆写,也不实现什么抽象方法,你用不着去implements或者extends。
作者:
王勃
时间:
2012-4-25 20:38
直接拿来用就ok,继承和实现接口只是为了体现出多态,好调用其中的方法(说的是你覆写过了或实现过的)。
赞同否?
作者:
魏征
时间:
2012-4-25 20:42
List list= new Arraylist()是多态,ArrayList类是List的子类,ArrayList本身已经继承了List,所以不需要继承。你说的Thread 在使用时候需要 classX extends Thread是自定义一个线程,这个线程需要继承Thread类的方法来实现线程。
作者:
袁冬梅
时间:
2012-4-25 22:17
咦,我来说说吧!
List list= new Arraylist()其实是多态的运用。
API里面的描述是:java.util 接口 List<E>
所有超级接口:
Collection<E>, Iterable<E>
所有已知实现类:
AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector
它的以实现子类中包括ArrayList。所以,你的代码的
list引用指向的是它的子类对象
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2