java多态的理解
来源:互联网 发布:淘宝哪里开直通车 编辑:程序博客网 时间:2024/05/30 20:07
多态的定义:指允许不同类的对象对同一消息做出不同的响应。
上面的说法可能有点难懂,借用网上一个实例:
比方说按下 F1 键这个动作,如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows 帮助和支持。同一个事件发生在不同的对象上会产生不同的结果。这样就很好理解了,通俗点讲,同一消息根据对象的不同也会有不同的结果(发送消息就是调用方法)。
实现多态的方式称为动态绑定,动态绑定指的是程序中定义的引用变量在编码的时候并不确定,而是在程序的运行的时候才确定,引用调用的方法也不确定,也只有在程序运行的时候才能够确定。这样就可以让引用动态绑定到不同的类上。
多态的实现基础是向上转型,向上转型是指将父类的引用指向子类的对象。
class Father{int age;public void teach(){System.out.println("父亲教儿子");}}class Son extends Father{int age;public void learn(){System.out.println("儿子向父亲学习");}}现在有两个类,一个是Father类,一个是Son类,Son类继承了Father类。
Son son = new Son();//子类的定义Father father = new Son();//向上转型下面就是向上转型,这样做有一个非常大的好处,father是父类的引用,当然他可以使用父类所有的方法,也可以使用子类的方法,而且当有多个子类的时候,父类的引用可以随时指向另一个子类。比如说现在有一个Son2类,我们只需要使Father father = new Son2();这样我们就可以使用Son2中方法了。但是向上转型也有缺点,他会丢失子类特有的方法。
指向子类的父类引用由于向上转型了,它只能访问父类中拥有的方法和属性,而对于子类中存在而父类中不存在的方法,该引用是不能使用的,尽管是重载该方法。若子类重写了父类中的某些方法,在调用该些方法的时候,必定是使用子类中定义的这些方法(动态连接、动态调用)。
实现多态的三个必要条件:继承、重写、向上转型。
对于引用子类的父类类型,在处理该引用时,它适用于继承该父类的所有子类,子类对象的不同,对方法的实现也就不同,执行相同动作产生的行为也就不同。
阅读全文
0 0
- java多态的理解
- Java 多态的理解
- JAVA多态的理解
- java多态的理解
- java多态的理解
- 理解java的多态
- JAVA多态的理解
- java多态的理解
- java多态的理解
- java多态的理解
- java 多态的理解
- Java多态的理解
- java多态的理解
- java多态的理解
- java多态的理解
- Java多态的理解
- Java多态的理解
- java多态的理解
- 实现折半查找的算法(数据结构)
- 网络请求加载控件的简单实现,能显示加载中、没网络、加载失败点击重新加载等状态
- 多渠道分包详解
- An Easy Problem
- STM32 高级定时器(2)
- java多态的理解
- 2017.12.07
- Keras 自编码器AutoEncoder(五)
- jsonView
- 最好的6个Go语言Web框架
- 我们逃离北上广,美国人逃离硅谷
- 快速排序
- 年终技术盛宴·12月20日云栖大会北京峰会精彩预告
- Java逻辑运算符