博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动手动脑
阅读量:4614 次
发布时间:2019-06-09

本文共 875 字,大约阅读时间需要 2 分钟。

【问题一】下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么?

m=d;

d=m;

d=(Dog)m;

d=c;

c=(Cat)m;

先进行自我判断,得出结论后,运行TestCast.java实例代码,看看你的判断是否正确

答:d=m;这个会引起编译错误,不兼容的类型:Mammal无法转换Dog

d=c;这个会引起编译错误,不兼容的类型:Cat无法转换Dog

c=(Cat)m;这个会引起运行时错误

源代码:

class Mammal{}

class Dog extends Mammal {}

class Cat extends Mammal{}

 

public class TestCast

{

public static void main(String args[])

{

Mammal m;

Dog d=new Dog();

Cat c=new Cat();

m=d;

//d=m;

d=(Dog)m;

//d=c;

//c=(Cat)m;

 

}

}

 

 

【问题二】阅读代码(CatchWho.java),写出程序运行结果

 

 

 

 

【问题三】阅读代码(CatchWho2.java),写出程序运行结果

 

 

 

【问题四】请先阅读 EmbedFinally.java示例,再运行它,观察其输出并进行总结。

 

 

 

 

 

【问题五】辨析:finally语句块一定会执行吗?请通过 SystemExitAndFinally.java示例程序回答上述问题。

答:finally{}里面的句子,不管try{}catch{}是否捕获到异常,一定会执行,而finally{}后面的要看前面的try{}catch{}语句是不是发生异常。如果try{}里面的正常执行完后, finally 就做结束处理,那么finally{} 后面还有 那当然会执行;如果 try{} 发生异常到catch{}捕捉 或直抛出 然后要执行finally{}里面的,但是后面的就不会执行了。

 

转载于:https://www.cnblogs.com/niujunyan/p/4960083.html

你可能感兴趣的文章
Reporting Services 的一些问题
查看>>
利用Redisson实现分布式锁及其底层原理解析
查看>>
达芬奇的十大经典名画解读
查看>>
case when then else end
查看>>
常用正则
查看>>
小程序丨嵌套循环
查看>>
基础 - arguments
查看>>
Linux的基本命令+深入一点的网址分享
查看>>
(C#) Encoding.
查看>>
BZOJ 2154: Crash的数字表格 [莫比乌斯反演]
查看>>
nrf51 SDK自带例程的解读
查看>>
SESSION技术
查看>>
数据结构(五)之直接插入排序
查看>>
SQL函数——LENGTH()和LENGTHB()
查看>>
vim - manual -个人笔记
查看>>
详解Javascript中prototype属性(推荐)
查看>>
angularjs实现首页轮播图
查看>>
Git 对象 和checkout 和stash的笔记
查看>>
团队项目总结2-服务器通信模型和顺序图
查看>>
hdu 1085 Holding Bin-Laden Captive!
查看>>