A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 爽朗的菜籽 中级黑马   /  2014-9-17 00:20  /  985 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在sort()方法中public static <T extends Comparable<? super T>> void sort(List<T> list)
我有2个疑问  
1.Comparable是一个接口 怎么能够被T继承呢 不应该是implements吗,还是说就是这个格式?
                    
2,Comparable<? super T>的意思 是Comparable中操作的是 T和T的父类 ,但是,如果我有2个类,父类是Person,子类是Student,此时 T是Student,Student实现了Comparable接口,并且有新的 comapreTo方法,比较的是Student的私有属性 学号,这个时候 作为Student的父类Person 并没有这个比较方法,怎么能被操作呢,我觉得 如果是 Comparable<? extends T>反而好理解一些,毕竟操作的是T和T的子类,T的子类继承了T中的属性,

作为一只菜鸟实在不敢质疑API的权威,只是相当的困惑,睡不着,想不通

1 个回复

倒序浏览
1. 这里的extends表示继承或实现
2. Comparable T extends Comparable<? super T> 不会出现你说的那种情况,如果出现了,那说明你的类设计有问题。如果Person实现了 Comparable<Person>接口,那么子类自然继承了compareTo方法。如果父类没有实现Comparable接口,那么根据Comparable T extends Comparable<? super T>的要求,Student必须实现Comparable接口,也不会出问题。除非你的Person和Student都没有实现Comparable接口,那就挂了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马