在学泛型的时候更加关注这个问题,下面是对java核心的总结
- 多态获取一个值时需要强转
- 多态get时会有强转的安全性问题,编译错误要优于运行时强转异常
- 泛型使代码具有更好的可读性
package 泛型;
import org.junit.jupiter.api.Test;
import java.util.LinkedList;
public class GenericTest {
// 原则 赋值一定是被赋值的子类或本身。(多态)
@Test
void Test1(){
LinkedList super Person> list_s = new LinkedList<>();
LinkedList extends Person> list_e = new LinkedList<>();
// 写 :只能写入通配符的子类或者最大本身(最父)或null
list_s.add(new Student());
// list_e.add(new Person()); //报错
// 读:只能读入通配符的父类或者最小本身(最子)或Object
Animal item1 = list_e.getFirst();
// Animal item2 = list_s.getFirst(); //报错
// 在声明时 ,需要前后一致
// LinkedList l = new LinkedList(); //报错
}
}
// 泛型类、 泛型接口、 泛型方法的使用
class Person extends Animal implements leg {
T t;
Person(){}
// 泛型方法一定新声明了一个方法
T show (E e){
System.out.println(e);
return t;
}
public void run(K k){
System.out.println(k);
}
}
interface leg {
void run(K k);
}
class Student extends Person{}
class Animal{}
//调用,方法名前声明泛型
new c(). a(00);



