昨日翻译
“A successful man is one who can lay a firm foundation with the bricks others have thrown at him.” ——David Brinkley
成功的人能够把别人扔向他的板砖成为他的根基。
——戴维·布林克利
今日名言
“Those who dare to fail miserably can achieve greatly.” ——John F. Kennedy
2019.04.09问题及解析题目
public class Son extends Father{ public static void main(String[] args) { new Son().run();//第三行 } private final void run(){//第五行 System.out.println("son"); }}class Father{ private final void run(){ System.out.println("father"); }}
请问结果输出什么?
A.son
B.father
C.第三行编译错误
D.第五行编译错误
E.抛出运行异常
答案与解析
1.相关知识
final修饰的方法不可以被重写,如果子类对final修饰的方法进行重写则编译报错。
private修饰的方法对于子类时不可见的,同样的方法名在父类和子类中同时出现表示的是新定义的方法,与父类无关。
子类父类存在相同方法时,子类进行调用时,优先调用子类的方法。
2.源码分析
定义了一个Son类继承于Father类
首先new了一个Son对象,并且调用了它的run()方法
定义了一个由一个private、final修饰的run方法,输出son
定义了Father类,同样有一个private、final修饰的run方法,输出father
3.答案解析
因为父类的run方法由private、final修饰因此与子类无关,如果去除private则子类run()编译错误,因此本身代码不存在问题。
将会直接调用子类的run方法输出son,答案选A。
2019.04.10问题public class ExceptionTest { public static void main(String[] args) { int number = 0; System.out.println(returnTest(number)); } private static int returnTest(int number){ try{ return number++; }catch (Exception ignored){ }finally { return ++number; } }}
请问结果输出什么?
A.0
B.1
C.2
D.编译错误
E.输出异常
往期回顾java每日一练(19_04_09)|面向对象—— 继承、访问修饰符
java每日一练(19_04_08)|运算符、循环—— for、++自增
java每日一练(19_04_07)|基础数据类型、包装类—— double、float、int、Double
java每日一练(19_04_03)|HashMap、Hashtable
java每日一练(19_04_02)|instanceof关键字
java每日一练(19_04_01)
java每日一练(19_03_31)
java每日一练(19_03_30)
java每日一练(19_03_29) (不定项选择题)
java每日一练(19_03_28)
java每日一练(19_03_27) (web服务器)
java每日一练(19_03_26) (程序的输出结果)
加入我们吧~眼过千遍,不如手过一遍,一定一定要把自己的想法写出来(想法不论对错,写你所想就是进步),这样才会有所收获,你的每一个留言和分享小刀都会认真回复,彼此学习共同进步~
小刀和小伙伴在学习群里
等你来一起监督学习哦,坚持!加油!
进群请加小刀微信: best396975802
。
END微信群请点击公众号菜单进微信群
文字|天堂
排版|花音
你点的每个 在看,我都认真当成了喜欢