本帖最后由 x378320002 于 2013-6-12 23:47 编辑
楼主的意思我明白,没太理解好Tree类集合添加和存储特点吧,这个代码稍加改动还是能执行的,
我就给你解释下下面这段是怎么执行的,你就在仔细想想
TreeSet set = new TreeSet();
set.add(new Parent(3)); -------- Parent(3)对象调用自己的compareTo方法和自己比较,因为是第一个
set.add(new Child());----------------new Child()对象调用自己的compareTo方法和 Parent(3)比较,返回正数则说明比 Parent(3)大,放在 Parent(3)右面存储。
set.add(new Parent(4));-------------new Parent(4)对象调用自己的compareTo方法和 Parent(3)比较(注意这里是关键),发现比 Parent(3)大,往右走,发现还有个new Child()
,那么new Parent(4)对象再调用自己的compareTo方法和new Child()比较,4比3大,所以放在-new Child()右面。
System.out.println(set.size());
继续往里存储,依次规律,注意,树形结构,说明是从节点开始比较,并不是比刚存进去的哪一个。这里只讨论运行,所以泛型与否不用管,没什么关系。
这个没有多态,所以什么覆盖继承什么的,也涉及不到。
|