多态
下面给大家介绍一些关于多态与抽象的知识: 都是一些比较简单的基础知识,如果有大佬能指导一二,那更是感激不尽 多态: 相同行为,不同实现. 静态多态:编译时,系统就能决定调用哪个方法 动态多态:运行中,系统才能动态确定方法所指的对象. 方法的重载: 满足相同的行为,不同的实现,是多态的一种体现,是静态多态. 方法的重写: 单独的重写也是静态多态 动态多态:使用动态绑定和重写实现 数据类型 基本数据类型 引用数据类型 发生原因 赋值时左右两端数据类型不匹配 赋值时左右两端数据类型不匹配 转换类型 自动(小转大) 强制(大转小) 自动(向上转型) 强制(向下转型) 适用范围 除了boolean其他都可以相互转换 只有继承类才能相互转换 对我们来说要想编译,运行都通过,最终只有两种效果: 1. 父类引用指向子类对象. 编译通过:因为子类和父类就是is-a的关系,所以子类对象就是父类类型的,一点问题也没有. 运行通过:因为每个子类对象在产生过程中,都是采用内存叠加的方式 先产生父类对象部分(就是一个完整的父类对象),然后在叠加子类特有 所以,这个子类对象拥有父类类型类型定义的一切内容 唯一的问题是: 当使用父类引用指向子类对象的时候,该引用只能操作到该对象身上继承与父亲的属性和行为,操作不到这个子类对象自己特有的属性和行为. 如果子类重写了父类的行为,那么只要是子类对象,不管用什么引用去指向