向上转型和向下转型
2016-07-13 10:40
197 查看
例如我现在有两个类,他们之间是继承的关系:
通俗地讲,向上转型就是把子类的对象转化为父类的对象,如:
Animal animal = new Dog();
但是注意,向上转型后,父类只能访问与子类共有的方法,如以下代码就会出现编译错误:
animal.bark(); //出错
向下转型则需要强制类型转换:
Animal animal = new Dog();
Dog dog = (Dog) animal;
总的来说,向上转型总是安全的,向下转型则未必,可能会发生ClassCastException.
class Animal { void eat () { System.out.println("Animal eat..."); } } class Dog extends Animal { @Override void eat() { System.out.println("Dog eat"); } void bark() { System.out.println("Dog bark"); } }
通俗地讲,向上转型就是把子类的对象转化为父类的对象,如:
Animal animal = new Dog();
但是注意,向上转型后,父类只能访问与子类共有的方法,如以下代码就会出现编译错误:
animal.bark(); //出错
向下转型则需要强制类型转换:
Animal animal = new Dog();
Dog dog = (Dog) animal;
总的来说,向上转型总是安全的,向下转型则未必,可能会发生ClassCastException.
相关文章推荐
- git.oschina免费的、分布式代码管理工具
- RSA生成公私钥
- Request对象中可以获取各种路径信息
- Intellij Idea java文件不显示
- 初窥Linux 之 我最常用的20条命令
- HTML5中的音频和视频播放
- C++建立及销毁链表
- 如何解决URL传递中文乱码
- 地主
- 代码开发规范
- VB利用api删除元素
- Number of Islands I & II
- 移动按钮位置
- poj 1077 Eight
- iOS-JS调用OC
- Mybatis Logging 查询sql日志
- 感谢你们投票给了鸡腿
- Caffe学习系列:用训练好的caffemodel来进行分类
- 海量数据处理专题
- Android ListView获得选项中的值