Java多态之引用类型转换
2017-03-02 15:06
225 查看
其中
Animal、
Dog、
Cat类在Java多态这篇文章中
public static void main(String[] args) { /* * 基本数据类型中,存在类型转换 * int i=1; * short s=(short)i;//强制转换为short类型 */ //在多态中也需要进行类型转换 Animal a=new Dog(); //Dog d=a;//编译报错:类型不匹配:不能从 Animal 转换为 Dog //强制类型转换 Dog d=(Dog)a;//编译正确 a.eat();//输出: dog eat bone Animal c=new Cat(); //Cat c=(Cat)a; /* * 编译正确,但是运行错误:Dog cannot be cast to Cat * 因为即使加了强制转换,Dog也不能转换为Cat * 所以在转换时,实际是什么类型就转换为什么类型 */ /* * 关键字 instanceof * 作用:判断对象是否是一个类的 实例 * 用法:boolean b=对象名 instanceof 类名 * 若对象是类的实例,返回true * 若对象时类的父类的实例,也返回true */ if(a instanceof Dog){//true System.out.println("a是Dog类型"); } if(c instanceof Dog){//false System.out.println("c是Dog类型"); } else{ System.out.println("c不是Dog类型"); } /* * 当需要知道对象是否是真是实例的类型时 * 用getClass方法 * 用法:对象名.getClass() == 另一对象名.getClass() */ if(d.getClass()==a.getClass()){//都为Dog类型,输出相同 System.out.println("a和d类型相同"); } else{ System.out.println("a和d类型不相同"); } if(d.getClass()==c.getClass()){//d为Dog类型,c为Cat类型,输出不同 System.out.println("c和d类型相同"); } else{ System.out.println("c和d类型不相同"); } }
相关文章推荐
- Java多态中的引用类型转换理解模型
- Java中的多态,引用类型的转换
- Java知识(多态和引用类型转换)
- java多态中的引用类型转换
- Java学习笔记二十六:Java多态中的引用类型转换
- Java多态中的引用类型转换
- Java多态对象的类型转换
- java:对象中引用类型转换的验证
- Java引用类型 Java类型转换疑惑
- Java基础12 类型转换与多态
- 【慕课笔记】U4 多态 第2节 多态中的引用类型转换
- Java基础----类型转换与多态
- java继承实质、父类引用指向子类对象(多态)、声明时类型、运行时类型
- java学习笔记:java的多态,子类和父类的相互转换,父类引用指向子类的对象
- java入门教程-4.6Java多态对象的类型转换
- java继承实质、父类引用指向子类对象(多态)、声明时类型、运行时类型
- more effective c++ 第一章读书笔记: 指针,引用,c++类型转换,多态数组,默认构造函数
- java笔记之封装、继承、重写、多态以及类型转换
- 第一周第一天([用文档编辑Java并运行] [Java中数据类型的转换][标题的使用] [引用的使用] [代码块的使用] [图片的使用] [JDK] [Eclipse])
- Java基础12 类型转换与多态