Java中的多态 和 强制类型转换
2016-04-12 20:49
441 查看
子类可以赋值给超类,称之为向上转型,这个是自动的。
超类不可以赋值给子类,这个是向下转型,需要我们手动实现。
赋值给超类的子类引用在运行期间将表现出不同的特性,这就是多态。
小类型 可转换为 大类型
大类型 转小类型需要 强制转换
对于存在继承关系的强制类型转换:
子类转换为父类属于向上塑型,可以直接转换
父类转换为子类属于向下塑型,需要强制类型转换,但是不一定成功。成功的条件是这个父类是经过子类向上塑型转换来的
对于不存在继承关系的强制类型转换,一般都是失败的(如果不写转换方法的话)
即:
子类可转为父类,父类不可以转为子类(如果不用强制类型转换)
1. 子类和父类含有相同的成员变量的时候,访问的是父类的成员变量
2. 子类和父类含有相同的成员方法是,访问的是子类的成员方法
3. 子类和父类含有相同的静态函数和静态方法时,访问的是父类的。
4. 父类不能访问子类特有成员和方法(强制类型转换除外)
也就是说,只有在访问成员方法的时候,才会表现出多态。
超类不可以赋值给子类,这个是向下转型,需要我们手动实现。
赋值给超类的子类引用在运行期间将表现出不同的特性,这就是多态。
小类型 可转换为 大类型
大类型 转小类型需要 强制转换
对于存在继承关系的强制类型转换:
子类转换为父类属于向上塑型,可以直接转换
父类转换为子类属于向下塑型,需要强制类型转换,但是不一定成功。成功的条件是这个父类是经过子类向上塑型转换来的
对于不存在继承关系的强制类型转换,一般都是失败的(如果不写转换方法的话)
即:
子类可转为父类,父类不可以转为子类(如果不用强制类型转换)
1. 子类和父类含有相同的成员变量的时候,访问的是父类的成员变量
2. 子类和父类含有相同的成员方法是,访问的是子类的成员方法
3. 子类和父类含有相同的静态函数和静态方法时,访问的是父类的。
4. 父类不能访问子类特有成员和方法(强制类型转换除外)
也就是说,只有在访问成员方法的时候,才会表现出多态。
相关文章推荐
- Java线程理解(2) 线程生命周期
- Java学习笔记之HashMap和Hashtable的区别
- 使用spring mybatis时,开启tomca失败
- Java二叉树(一)--定义及前序、中序、后序、层次遍历及求高度的实现
- java中的乱码问题
- Java学习-047-数值格式化及小数位数四舍五入
- LeetCode Power of Two JAVA
- Java中的泛型
- 在myeclipse中快速搭建Struts2框架
- java7中提供的多线程操作
- Java中接口和抽象类的区别
- java CountDownLatch(闭锁)
- Java基础知识
- Struts---拦截器
- java.lang.UnsupportedOperationException
- maven项目 启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- 用java实现输出字符串中第一个出现不重复的字符
- JavaFX中TextFieldTableCell的颜色问题
- javaweb作业制作网页版简易计算器(3种方式)
- 毕业设计之jdk和spring不兼容