学习java第十二和十三天

这里写图片描述
多态
多态又分为静态多态和动态多态
静态多态:在编译期间就能决定由哪一个对象来调用哪一个行为。
动态多态:编译期间不能决定由哪一个对象来调用哪一个行为。
静态多态的实现:重载和重写
动态多态的实现:使用动态绑定和重写实现。

转型技术
转型条件:只能发生在父类和子类之间
向上转型技术:
一个父类的引用变量可以指向不同的子类对象,或者说一个子对象可以被当作一个父类类型。(引用数据类型转换只能用在存在继承关系的父类与子类之间)即由子类向父类转型,这个编译器会自动识别;能转型成功,原因是:父类的范围>>子类的范围。为什么父类能够指向子类,因为子类实例中,一定拥有一个完整的父类的所有数据值。

向下强制转型:
引用数据类型向下转型是有风险的,不是说一定能够转型成功,如果需要转型成功,那么必须满足两个条件:1.必须是父类的引用指向一个子类的实现2.子类的引用最终必须指向相同类型的子类的实现。
结论:父类的引用可以指向子类的对象,子类的引用不能指向父类的对象。

Instanceof关键字:instanceof关键字用于判断运行时对象的真正类型。
目的:用来规避掉在“强制向下转型”过程中,可能会出现的转换风险。

绑定技术
静态:
程序执行之前方法就已经被绑定,也就是说编译器能够直接识别的绑定关系;
java的方法只有final、static、private和构造器是前期绑定。
动态:
运行时根据父类的引用所指对象的时机类型执行相应的子类的方式,从而实现多态性。

多态应用:多态参数的传递、异构集合

抽象
范围:
1.对象抽象成类
2.类抽象成父类
抽象类:
1.拥有抽象方法的类一定是抽象类;
2.但是抽象类身上,不一定拥有抽象方法;
3.当一个类的所有行为,都无法具体实现的时候,或者说这个类已经失去了被实例化的含义的时候,我们就可以将一个类抽象为抽象类。

抽象类的成员组成:
成员变量、方法行为、静态属性和行为、初始化块、构造器(此时的构造器,它的作用并非是创建一个对象,而是为成员变量分配存储空间)。
抽象方法:
作用:规范子类的行为,强制性要求子类必须重写父类的方法实现,抽象类除了不能实例化以外,其他的都跟普通类没有任何差别。

猜你喜欢

转载自blog.csdn.net/qq_43046901/article/details/82631360