Java 多态与父类的设计相关
来源:互联网 发布:万能五笔有mac版吗 编辑:程序博客网 时间:2024/04/30 02:11
1.java多态性的两种主要体现:
(1)方法的重载与覆写。
(2)对象的多态性。
2.对象的多态性的两种类型:
(1)向上转型:子类对象——>父类对象。
(2)向下转型:父类对象——>子类对象。
对于向上转型,程序会自动完成,而对于向下转型时,必须明确地指明要转型的子类类型。
例子1:对象向上转型
程序运行结果:
B ——> public void fun1(){}
注:此时父类对象调用的是被子类覆写过的方法。注意!但是此时对象 a 是无法调用 B 类中的 fun3() 方法的,因为此方法只在子类定义,而没有在父类中定义,如果要想调用子类自己的方法,则肯定要使用子类实例,所以此时可以将对象进行向下转型。
例子2:对象向下转型
程序运行结果:
B ——> public void fun1(){}
B ——> public void fun1(){}
B ——> public void fun3(){}
注:1. A a = new B(); <=> 上个例子中的 B b = new B(); A a = b; 一个式子相当于直接向上转型了。
2.我去,这个上面画红线的转来转去不是相当于直接:B b = new B();
3.但是请注意,如果写成 A a = new A(); B b = (B) a; 则会发生运行时错误。 java.lang.ClassCastException : A cannot be cast to B
3.使用对象多态性
4. instanceof
在上面的fun()方法中因为要调用各自子类自己的方法,所以必须进行对象的向下转型,但是为了保证程序在运行时不出现类转换异常,所以在发生向下转型前要使用instanceof 关键字判断是那个子类的实例,以保证程序的运行正确。
如下:
5. 关于父类的设计
0 0
- Java 多态与父类的设计相关
- 摄像机相关类的设计与实现
- java中与网络相关的类
- Java与时间相关的类
- java中与数学相关的类
- java 与接口相关的几种设计模式(未完成)
- 设计·网页设计与开发的相关学习资源
- java 使用与字符串相关的类来处理数据
- java程序设计--孙鑫java无难事Lesson6《数组相关操作、几个特殊的类、设计模式》
- Java中2.5D游戏的设计与实现(3)—八方走法实现原理及相关代码
- 与Java相关的四十个名字
- 与Java相关的四十个名字
- 与Java相关的四十个名字
- 与Java相关的四十个名字,
- 与Java相关的四十个名字
- 与Java相关的四十个名字
- 与Java相关的四十个名字
- java中与Date相关的总结
- Android Application的作用
- CvMat Mat IplImage 之间相互转化
- smart210 的Android源码编译
- web知识笔记:select 传值与赋值
- 将Python程序打包成可执行文件
- Java 多态与父类的设计相关
- HDU-2157 How many ways?? 矩阵快速幂
- Linux学习记录--文件备份|还原
- Maven中央仓库——你可能不知道的细节
- 黑马程序员_包
- spring中singleton和prototype
- 电容测量仪
- SQL多表连接查询
- struts2中理解struts-default.xml