2019秋JAVA第二周课程总结
Java初探
Java也是OOP,因而它和其他OOP基本要素一致。
包括 封装 继承 多态
前两项都非常好理解,在多态(同一类不同表现形式)上难以深入理解
多态
(等号)左父右子为多态
只有方法能覆盖重写,变量不能。因而在多态代码中,创建一个父类下的一个子类的实例化对象,这个实例化对象是不可访问那个子类中所定义的变量。
//访问成员变量: //直接通过对象名称访问成员变量:看等号左边是谁,优先用谁,没有则向上找。 Fu obj = new Zi(); //优先用Fu 类中变量,没有则向上找
一个实现类(小范围)可以向上转换为接口类型,可类比int自动转换为double。
因而,一个实现类是可以传入一个参数类型为接口类的方法的
泛型
以前学习的OOP语言(如Python,PHP等)是没接触过泛型的概念的,这里补充了解一下。
当一个类不确定要使用什么类型的时候,可以使用泛型 <E e> <t> ,在实例化对象的时候再确定具体使用什么数据类型
ArrayList <String> li = new ArrayList<>();
创建一个 String类型的 ArrayList
ArrayList li = new ArrayList(); //若不写泛型,则默认数据类型为object,可以存储任何类型
作为参数处理泛型时,可以通过泛型通配符来处理
public static void PrintArray(ArrayList<?> list) { Iterator<?> it = list.iterator() .... }
这样,在传入参数时,就可自动识别到具体泛型是什么。
泛型上下限定
public static void get(Collection<? extends Number> coll) public static void get(Collection<? super Number> coll)

浙公网安备 33010602011771号