名人名言
昨日翻译
“Love is a serious mental disease.”
——Plato
“爱情是一种严重的精神疾病。”
——柏拉图
今日名言
“Our greatest fear should not be of failure… but of succeeding at things in life that don’t really matter.”
——Francis Chan
2019.04.20问题及解析
题目
public class Son extends Father{
private String name = "son";
public static void main(String[] args) {
Father son = new Son();
}
void printName(){
System.out.println(name);
}
}
class Father{
private String name = "father";
Father(){
printName();
}
void printName(){
System.out.println(name);
}
}
请问会输出什么?
A.father
B.son
C.null
D.异常
答案与解析
1.相关知识
①创建一个对象时会优先执行它的构造函数
②当它有父类时优先执行它父类的构造函数
2.代码流程
定义了Son类继承Father类
定义了私有属性name,值为son
通过多态创建了一个子类对象
定义了printName方法,打印出属性name
定义了父类对象
定义私有属性name,值为father
定义了构造函数调用printName方法
定义了printName方法,打印出属性nameA
3.答案解析
由于new的是子类对象,因此首先调用父类的构造方法
调用父类的构造方法则会调用printName方法
因为子类中有printName方法,因此此时调用的是子类的printName方法
但此时子类对象还没有构造,因此输出的结果为null
答案选C。
2019.04.21问题
public class Son extends Mother{
public String grade;
public static void main(String[] args) {
Mother mother = new Son();
System.out.println(mother.name);
}
}
class Mother{
private String name = "mom";
int age = 50;
}
这道题主要是为了解决昨天评论区小伙伴们的误区出的哦
请问上述代码的输出是:
A.mom
B.没有输出
C.编译出错
D.抛出异常
E.null
往期回顾
java练习本(19_04_16)|继承——访问修饰符、覆盖
java练习本(19_04_15)|lang包类——Math
java每日一练(19_04_11)|条件语句——switch
java每日一练(19_04_10)|异常—— try catch finally
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_03_29) (不定项选择题)
加入我们吧~
眼过千遍,不如手过一遍,一定一定要把自己的想法写出来(想法不论对错,写你所想就是进步),这样才会有所收获,你的每一个留言和分享小刀都会认真回复,彼此学习共同进步~
小刀和小伙伴在学习群里
等你来一起监督学习哦,坚持!加油!
进群请加小刀微信: best396975802
。
END
微信群请点击公众号菜单进微信群
文字|天堂
排版|花音
你点的每个在看,我都认真当成了喜欢