java中对象的类型转换
来源:互联网 发布:淘宝直通车关键词查询 编辑:程序博客网 时间:2024/05/20 01:36
java中对象的类型转换
1.向上类型转换
在java中对象的向上类型转换是安全的。
具体解释请参考以下代码及其注释:
public class ExampleTest {public static void main(String[] args) {Animal animal=new Dog(); //向上类型转化,把Dog类的对象转换成了Animal类的对象,方法不会丢失 animal.eat(); //调用Dog的eat方法 }}class Animal{ //创建一个Animal类public void eat(){ //定义一个动物eat的方法,不具体指定哪一种动物,便于程序扩展}}class Dog extends Animal{//创建一个Dog类,继承自Animal父类public void eat(){ //重写父类的eat方法System.out.println("啃骨头");}}class Cat extends Animal{//创建一个Cat类,继承自Animal父类public void eat(){ //重写父类的eat方法System.out.println("吃鱼肉");}}
输出结果:啃骨头
2.向下类型转换
在java中对象的向上类型转换是不安全的。因为会丢失子类中的方法!,我画一幅图说明以下就懂了。
因为子类是继承自父类的,所以父类有的方法子类肯定有,所以向上类型转换是安全的。而子类中有的方法父类不一定有,所以向下类型转换是不安全的
具体解释请参考以下代码及其注释:
public class ExampleTest {public static void main(String[] args) {Dog animal= new Animal();//向下类型转化,把Animal类的对象转换成了DOg类的对象,不安全 animal.eat(); //调用Dog的eat方法 }}Dog类和Cat类的代码和上面一样
避免向下类型转换出现错误的方法:
public class ExampleTest {public static void main(String[] args) {Dog animal= new Animal();//向下类型转化,把Animal类的对象转换成了DOg类的对象,不安全if(animal instanceof Dog) animal.eat(); //调用Dog的eat方法 } }
Dog类和Cat类的代码和上面一样
java中instanceof 关键字是用来判断对象的类型是不和后面类是不是匹配,如果匹配返回true,否则返回false。用这个关键字可以限制类
型转换时出现错误
0 0
- Java中对象类型的强制转换
- Java中对象类型的强制转换
- java中对象的类型转换
- java中对象类型转换
- java的对象类型转换
- java的对象类型转换
- JAVA的对象类型转换
- Java中类对象之间的类型转换
- java中类对象之间的类型转换
- java中类对象之间的类型转换
- Java中类对象之间的类型转换
- java中类对象之间的类型转换
- Java中类型的转换
- java对象类型转换
- Java对象类型转换的四个经验
- java学习:对象的类型转换、多态
- Java多态对象的类型转换
- Java对象类型转换的四个经验
- C/C++趣味编程经典100例详解
- JMeter对接口进行压力测试
- java IO 用递归删除目录
- linux应用之test命令详细解析
- 高级Python网络爬虫使用技术选择指南
- java中对象的类型转换
- nginx配置location总结及rewrite规则写法
- C语言精要总结-内存地址对齐与struct大小判断篇
- JAVA随笔——关于编码
- bzoj 4070: [Apio2015]雅加达的摩天楼 最短路+分块
- C#/.NET中关于目录路径的问题
- CodeForces 803A Maximal Binary Matrix
- SIGSEGV
- Java 单例模式