多态有助于减少重载的方法******加粗样式
注意泛型主要用于集合类,接口等
因为其元素不确定,可以是任意的,得是调用时才知道,所有用了泛型
不用泛型得问题(原先不用泛型默认Object)
1.类型不安全(使用后编译时就会出现类型检查)
2.强转时候出现类型转化异常
一 常见知识
1.泛型不能用基本数据类型,得用他得包装类
2.在实例化集合类时,可以指明具体的泛型类型
3.指明完以后,在集合类或接口中凡是定义类或接口时候、,内部结构(方法,构造器,属性)使用类的泛型的位置,都指定为实例化时泛型的类型
add(E e)------>add(Integer e)
4实例化时,没有指明泛型,则默认为java.lang.object
二 泛型方法
泛型方法是可以声明为静态,原因:泛型参数在调用方法时确定而非实例化时确定
二 自定义泛型类 泛型接口,泛型方法
泛型类
1).子类继承父类泛型类有两种
1.不需要泛型类。可直接赋类型
public class SubOrder extends Order{
}
2.需要泛型类
public class SubOrder extends Order{
}
2)泛型类有多个参数,此时将多个参数一起放到尖括号<E1,E2,E3>
3.
4.
泛型数组的创立
5.
泛型方法
三继承方面体现
Object与String有子父类关系
但是List与List没有子父类关系
五 通配符
用通配符?实现多态
List list1=null;
List list2=null;
List<?> list=null;
list=list1;
list=list2;
对于List<?>就不能向其内部添加数据除了Null之外(但可以赋值指向 list=list3)
允许读取数据,读取的数据为Object
list1(new Student)//编译不过
?=new Student;不符合多态,由于只能子类赋给父类
list2(new Student)//
由于?super Person
所以?=new Student;可以
多态主要是为了减少重载的方法数量