`

类对象的 显示转换 和 隐式转换

 
阅读更多
类对象的 显示转换 和 隐式转换



public class Employee {
    int a = 1 ;
	public  void work(){} ;
    public  void getPay(){} ;
}



public class Teacher extends Employee{
    int a = 1000 ;
	@Override
	public void getPay() {
		System.out.println("发工资了!!") ;
	}

	@Override
	public void work() {
		System.out.println("又要上班了!!") ;
	}

	public void driveCar(){
		System.out.println("开车旅游去了!!") ;
	}
}



一、隐式转换(子类 --> 父类)

Employee emp = new Teacher() ;

System.out.println(emp instanceof Employee) ;//true

System.out.println(emp instanceof Teacher) ; //true
注意此处,虽然emp也是Teacher的实例对象,但emp只能调用Employee类里面有的属性和方法,不能调用Teacher类自己新定义的属性或方法。



二、显示转换(强制转换)(父类 --> 子类)
Employee emp = new Teacher() ;
Teacher empTotea = (Teacher)emp ; //父类 --> 子类

System.out.println(empTotea instanceof Employee) ;//true
System.out.println(empTotea instanceof Teacher) ; //true


Employee e = new Employee() ;
Teacher t2 = (Teacher)e ;       //父类 --> 子类

编译可以通过,但运行时会报错:ClassCastException
Exception in thread "main" java.lang.ClassCastException: com.org.momo.instanseof.Employee cannot be cast to com.org.momo.instanseof.Teacher
	at com.org.momo.instanseof.Test.main(Test.java:7)
分享到:
评论

相关推荐

    debugging-scala-implicits-in-intellij:如何在IntelliJ中调试Scala隐式转换和参数

    突出显示隐式转换的对象。 重要说明:在研究丰富的对象时,您必须仅突出显示对象,而不是突出显示的方法。 这是因为对象就是要转换的对象。 选择该方法将解析该方法返回的对象的隐式转换。 CTRL + Q 查看实际的...

    02 数据类型的转换.html

    转成数字对象:强类型、显示转换:强制转换成数字类型。Number() 隐式型、弱类型转换:+ - * / (运算符) undefined 转数字:NaN null 转成数字:0 true 转数字:1 false 转成数字:0 数字除以0结果是infinity...

    浅谈类型转换操作符is/as

    2. 概念引入 类型转换包括显示转换和隐式转换,在.NET中类型转换的基本规则如下: 任何类型都可以安全的转换为其基类类型,可以由隐式转换来完成; 任何类型转换为其派生类型时,必须进行显示转换,转换的规则是...

    c# 类型转换

    在C#中,可将一个对象隐式转换为它的基类型,将对象转换成派生类型需要显示转换。例: object o = new Emplee(); Emplee e = (Emplee)o; 但是如果将一个对象转换成自己的派生类型是,会运行时报错: object o = ...

    面向对象理论题的知识点.pdf

    隐式转换, int num=(int )num;显示转换 person p= new student() ((student)p).show(); 早上过来大概看一下昨天的笔记, 上课应该先听懂,晚自习是先弄明白知识点然后马上做练习, 预习很重要

    Javascript 类型转换、封闭函数及常见内置对象操作示例

    主要介绍了Javascript 类型转换、封闭函数及常见内置对象操作,结合实例形式分析了JavaScript类型显示转换、隐式转换、变量作用域、封闭函数及常用内置对象相关操作技巧,需要的朋友可以参考下

    新手学习C++入门资料

    标准C++的iostream类库中包括了可以支持宽字符的类和对象。用wout替代cout即可。 #include iostream.h int main() { wchar_t wc; wc='b'; wout; wc='y'; wout; wc='e'; wout; return 0; } 说明一下...

    c#学习笔记.txt

    装箱是值类型到 object 类型或到该值类型所实现的任何接口类型的隐式转换。将一个值的值装箱会分配一个对象实例并将该值复制到新的对象中。关键字 object. 取消装箱是从 object 类型到值类型或从接口类型到实现该...

    MySQL 5.1中文手冊

    8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误代码 8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. ...

    MVP由浅入深(2)

    即便你想向用户显示一个数字,比如金额,在显示之前,也会要么显式、要么隐式地转换为了字符串类型;而对象的字段类型却可能是多种多样的。所以,View的接口定义只包含String类型的Set属性,而实际将各种类型向...

    JavaScript笔记

    6.数据类型的隐式转换: |--数字 + 字符串:数字转换为字符串 |--数字 + 布尔值:true转换为1,false转换为0 |--字符串 + 布尔值:布尔值转换为字符串true或false |--布尔值 + 布尔值:布尔值转换为数值1或0 7...

    Visual C#2010 从入门到精通(Visual.C#.2010.Step.By.Step).完整去密码锁定版 I部分

    21.7.4 添加隐式转换操作符 399 第21章快速参考 402 第iv部分 操纵windows应用程序 第22章 windows presentation foundation概述 405 22.1 创建wpf应用程序 405 22.2 在窗体上添加控件 418 22.2.1 使用wpf控件...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--Activity不允许横竖屏切换 |--Activity常用小技巧 |--Activity按返回直接回到桌面 |--aidl之结合反射获取应用缓存大小等空间占用 |--aidl调用系统service未公开的方法挂电话 ...|--隐式转换 页面 |--震动效果的实现

    明日科技C#开发入门及项目实战

    实例207 使用隐式类型局部变量实现字母的大小写转换 实例208 使用扩展方法显示员工信息 实例209 使用lambda表达式查找指定字符串 实例210 检查序列中是否包含指定元素 实例211 使用linq在一个循环中遍历多个数组 ...

    MYSQL中文手册

    8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误代码 8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 ...

    《C#经典编程220例》.(明日科技).【带书签】-共3部分

    实例207 使用隐式类型局部变量实现字母的大小写转换 397 实例208 使用扩展方法显示员工信息 398 实例209 使用lambda表达式查找指定字符串 400 实例210 检查序列中是否包含指定元素 402 实例211 使用linq在一个循环中...

    LuaBind 源码 (Lua增强库)

    她有能力暴露 C++ 函数和类到 Lua . 她也有 能力支持函数式的定义一个Lua类,而且使之继承自C++或者Lua. Lua类可以覆写从 C++ 基类 继承来的虚函数. 她的目标平台是Lua 5.0 ,不能支持Lua 4.0 . 她利用模板原编程技术...

Global site tag (gtag.js) - Google Analytics