java-对象的多态
来源:互联网 发布:java 转二进制 编辑:程序博客网 时间:2024/06/18 14:54
多态在面向对象中是一个非常重要的概念,对象的多态主要表现在两个方面:
- 方法的重载的覆写
- 对象的多态性
对象的多态性主要分为以下两种类型:
- 向上转型:子类对象-父类对象
- 向下转型:父类对象-子类对象
对象向上转型,程序会自动完成。向下转型,必须明确指定要转型的子类类型。格式如下:
对象向上转型:父类 父类对象 = 子类实例;
对象向下转型:子类 子类对象 = (子类)父类实例;
对象向上转型的案例:
定义父类:
public class Father { public void fun1(){ System.out.println("father`s method fun1"); } public void fun2(){ System.out.println("father's method fun2"); }}
定义子类
public class Son extends Father { @Override public void fun1() { System.out.println("son's method fun1 "); } public void fun3(){ System.out.println("son's method fun3"); }}
测试向上转型
@Test public void test() { Son son = new Son(); Father father = son; father.fun1(); }
test result:
son’s method fun1
分析:
虽然调用的father的fun1方法,但是实际上调用的是子类的fun1方法。也就是说,当对象发生了向上转型之后,调用的一定是被子类覆写的方法。但是father是无法调用son类中定义fun3方法的。如果想调fun3方法,需要有子类的实例进行调用。
对象向下转型:
还是使用上面的案例进行测试:
@Test public void test2() { Father father = new Son(); //向上转型 Son son = (Son) father; //向下转型 son.fun1(); son.fun2(); son.fun3(); }
result:
son’s method fun1
father’s method fun2
son’s method fun3
需要注意的一点是:在向下转型之前必须先向上转型。
0 0
- java-对象的多态
- Java多态对象的类型转换
- Java多态的创建对象区别
- Java面向对象的多态案例
- java入门教程-4.6Java多态对象的类型转换
- java面向对象的多态的问题
- java 面向对象多态
- java----------测试对象类型的多态实现
- 黑马程序员-java基础 面向对象的多态
- java学习之路---对象的多态
- java多态的前置知识--对象转型
- java面向对象的封装、继承、多态案例
- Java面向对象封装、继承、多态的总结
- 如何理解Java面向对象的多态
- java学习笔记5.23对象和面向对象的思考,继承和多态
- java 的Statement 对象
- java 对象的生命周期
- java 对象的集合
- 模态弹出框--JavaScript触发时的参数设置(二)
- 关于equal和==
- 中石油多校联赛(最后一水) Pong’s Birds(dp)
- JavaScript中的闭包
- 做好网站结构优化细节,只需4点
- java-对象的多态
- caffe之网络权重可视化(C++实现)
- nginx+tomcat负载均衡以及redis共享session综合解决方案(By Centos 7)
- python如何查看编码类型
- sikuli在selenium的应用
- Spring MVC 下设置默认访问页面的3种方式
- c-free 5.0 菜单,工具条丢失解决
- Android全局获取Context
- 亚马逊的VR购物新体验!网购者的福利来了!