1、多态指对象的多种形态:引用多态与方法多态
注意:
A:继承是多态的实现基础
B:方法重写也是多态的体现
2、引用多态
A:父类的引用可以指向本类的对象:父类 对象名 = new 父类();
B:父类的引用可以指向子类的对象:父类 对象名 = new 子类();——多态的体现
注意:该对象调用的方法是从父类继承或子类重写的方法,并且会丢失子类特有的方法。
注意:
A:子类的引用不可以指向父类的对象
B:B例的话,父类对象不能直接调用子类的独有方法(只能访问父类继承给子类的东西)
3、方法多态
A:创建本类对象时,调用的方法为本类方法
B:创建子类对象时,调用的方法为子类重写的方法或者继承的方法
——
——
第二节:引用类型转化
引用类型转换:
1、向上类型转换(隐式/自动类型转换),是小类型到大类型的转换。
如:Dog dog=new Dog();Animal animal=dog;//正确,自动类型提升,向上类型转换
2、向下类型转换(强制类型转换),是大类型到小类型的转换(存在风险,溢出)
如:Dog dog1=(Dog)animal;//向下类型转换
使用技巧:
1、子类方法名点中——Ctrl+1——可以将所有抽象方法补全。
2、Ctrl+1——修改类名,连着文件名一起修改。
1.什么是多态?
同一个引用类型,使用不同的实例而执行不同操作(父类引用子类对象)
2.使用多态实现思路
编写父类;
编写子类,子类重写父类的方法;
运行时使用父类的类型,子类的对象
3.实现多态的两种形式
使用父类作为方法形参实现多态;
使用父类作为方法返回值实现多态。
4.实现多态需要三个必要的条件:继承;要有重写;父类引用要指向子类对象。
5.实现多态要用到的技术:动态绑定(dynamic binding)
6.语法
对象 instanceof 类接口 ;(instanceof通常和强制类型转换相结合)