命名要求:
1. 类名,接口名,枚举名,注解名使用大驼峰
2. 变量名,方法名,包名均使用小驼峰
3. 常量名全大写,多个单词下划线分割
4. 名字要见名知意,如果不知道对应的英文,可以使用拼音代替。不可使用无意义字符
代码规范:
格式要良好,使用IDEA格式化缩进(快捷键:Ctrl+Alt+L)
答题规范:
1. 每道题完整代码请贴入对应题目中的代码区。
2. 如果有运行结果的,请把代码运行结果放到文档中
【泛型】
题目1
有以下类结构:
人员类(Person):
|--学生类(Student)
|--Java学生类(JavaStudent)
|--UI学生类(UIStudent)
|--教师类(Teacher)
|--Java教师类(JavaTeacher)
|--UI教师类(UITeacher)
要求:
- 请按上述要求定义类,并实现继承关系即可(不需要定义类成员,定义空类表示关系即可)
- 请按以下格式和要求定义测试类和方法:
public class Test1{
public static void main(String[] args){
ArrayList<String> list1 = new ArrayList<>();
ArrayList<Person> list2 = new ArrayList<>();
ArrayList<Student> list3 = new ArrayList<>();
ArrayList<JavaStudent> list4 = new ArrayList<>();
ArrayList<UIStudent> list5 = new ArrayList<>();
ArrayList<Teacher> list6 = new ArrayList<>();
ArrayList<JavaTeacher> list7 = new ArrayList<>();
ArrayList<UITeacher> list8 = new ArrayList<>();
//请测试哪些集合可以调用print1()方法
//请测试哪些集合可以调用print2()方法
//请测试哪些集合可以调用print3()方法
//请测试哪些集合可以调用print4()方法
}
//要求:参数可以接收任何泛型的ArrayList参数
public static void print1(ArrayList<__?___> list){
}
//要求:参数可以接收任何Person及其子类泛型的ArrayList参数
public static void print2(ArrayList<__? extends Person______> list){
}
//要求:参数可以接收任何Student及其子类泛型的ArrayList参数
public static void print3(ArrayList<___? extends Student____> list){
}
//要求:参数可以接收任何Java学员,及其父类泛型的ArrayList参数
public static void print4(ArrayList<___? super JavaStudent> list){
}
}
参考答案:
思路:使用泛型的上限和下限
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<String> list1 = new ArrayList<>();
ArrayList<Person> list2 = new ArrayList<>();
ArrayList<Student> list3 = new ArrayList<>();
ArrayList<JavaStudent> list4 = new ArrayList<>();
ArrayList<UIStudent> list5 = new ArrayList<>();
ArrayList<Teacher> list6 = new ArrayList<>();
ArrayList<JavaTeacher> list7