PS:昨天去笔试后,发现自己对于JavaSE的基础部分还是有些薄弱的地方,特将昨天自己不是太清楚的地方记录下来,巩固基础。

子类继承父类静态方法的问题

public class Study {
public static void main(String[] args) {
Super sup = new SubClass();
sup.say();
sup.a(); SubClass sub = new SubClass();
sub.say();
sub.a();
}
} class Super {
public static void say() {
System.out.println("I am super");
} public void a() {
System.out.println("super a");
}
} class SubClass extends Super{
public static void say() {
System.out.println("I am sub");
} @Override
public void a() {
System.out.println("sub a");
}
}

题目就是问上面的输出结果,这里主要考察的就是子类对于父类静态方法是如何继承的。首先子类能够继承父类的静态方法,但是子类不能够重写父类的静态方法,这就意味着如果如果子类有一个和父类同名且方法签名相同的方法,那么此时子类会隐藏父类的该方法,我们知道多态的机制靠的就是子类重写父类的方法,然后用父类的引用指向子类的对象,用父类的引用调用子类的方法。此时,该静态方法只是被隐藏了,没有被重写,那么在该方法上就没有实现多态。(上面的代码是在IDEA里编写的,在编写的过程也能发现子类对父类的静态方法没有重写,没有提示加@Override注解)

所以上面的输出是:

I am super
sub a
I am sub
sub

Java中类初始化的问题

问:下面代码的输出结果?

package com.yunche;

/**
* @ClassName: Study
* @Description:
* @author: yunche
* @date: 2018/12/05
*/
public class Study {
public static void main(String[] args) {
SubClass subClass = new SubClass();
}
} class Super {
static{
System.out.println("super:clinit()");
} Super() {
System.out.println("super:init()");
}
} class SubClass extends Super{
static{
System.out.println("SubClass:clinit()");
} SubClass() {
System.out.println("SubClass:init()");
}
}

  此题考查类的初始化顺序,先将父类的 clinit() 方法执行完,再执行子类的 clinit()方法,然后执行父类的 init() 方法,最后执行子类的 init() 方法。所以结果为:

super:clinit()
SubClass:clinit()
super:init()
SubClass:init()

Java真实笔试题一的更多相关文章

  1. 非常全面的java基础笔试题

    下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们 ...

  2. Java 面试/笔试题神整理 [Java web and android]

    Java 面试/笔试题神整理 一.Java web 相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并 ...

  3. Java工程师笔试题整理[校招篇]

    Java工程师笔试题整理[校招篇]     隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打 ...

  4. Java基础&笔试题

    这些题目是近期我参加过的笔试题和一些我在网上选的部分题,在这里做笔记,认真去学习,更好的应对后面的招聘.有错误欢迎指出. 一.Java基础部分 1.指针在任何情况下都可进行>,<,> ...

  5. Android开发面试经——3.常见Java基础笔试题

      Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...

  6. [原创]Java常见笔试题知识点汇总

    前天数梦工厂来学校招聘,笔试题比较有特点,全是Java题,基本就是Java的一些特点.凭记忆按照题目找到一些必备知识点 (1). try {}里有一个return语句,那么紧跟在这个try后的fina ...

  7. 深圳市利汇电子商务科技有限公司2019年java面试笔试题

    垃圾公司,建议不要去,写的地址去了发现是两个公司公用一个办公场地,还没有公司的招牌,去了交简历给前台然后就是 填一份求职申请,一份笔试题如下,然后就等待,先是人事的一个小妹妹面试,问一些个人问题,为什 ...

  8. java面试笔试题大汇总

    第一,谈谈final, finally, finalize的区别.  最常被问到.   第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以 ...

  9. java真实面试题(1)

    2019年春杭州邦盛科技java面试题. 1,java基本类型 byte,char,short,int,long,float,double,boolean. 2,重写重载 重写,子类重写父类的方法,方 ...

随机推荐

  1. 图像处理之基础---图像缩放中的双线性插值c实现

    在进入频域变换之前, 我们还是轻松一下,再搞点平面上的变化来看看.这把选了一个双线性插值(Bilinear interpolation)来实现是源于看到了csdn上别人的问题, 权且实现一个函数,方便 ...

  2. 2015 Multi-University Training Contest 4 1001 Olympiad

    代码: #include<cstdio> #include<cstring> #include<set> using namespace std; int vis[ ...

  3. 跨线程访问UI控件时的Lambda表达式

    工作中经常会用到跨线程访问UI控件的情况,由于.net本身机制,是不允许在非UI线程访问UI控件的,实际上跨线程访问UI控件还是 将访问UI的操作交给UI线程来处理的, 利用Control.Invok ...

  4. Android 通过USB查看kernel调试信息【转】

    本文转载自:http://blog.csdn.net/lindonghai/article/details/51683644 前提:电脑已安装adb并可正常使用. 在调试Android驱动时,需要查看 ...

  5. [POI2012]FES-Festival

    https://www.zybuluo.com/ysner/note/1252538 题面 有一个数列\(\{a\}\).现给定多组限制,限制分成\(2\)类,第一类是\(a_x+1=a_y\),有\ ...

  6. bzoj3196 二逼平衡树——线段树套平衡树

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3196 人生中第一棵树套树! 写了一个晚上,成功卡时 9000ms+ 过了! 很要注意数组的大 ...

  7. bzoj2521

    最小生成树+最小割 ...我太zz了,没看出来全体减1是一个加1,看见后就是sb题了... 我们发现根据克鲁斯卡尔的过程,我们把边从小到大加入,如果两点已经相连就跳过,那么我们把所有小于等于这条边的边 ...

  8. Python---scikit-learn(sklearn)模块

    Python在机器学习方面一个非常强力的模块---scikit-learn模块,它作为数据挖掘和数据分析方面的一个简单而有效的工具,主要包括6大功能:分类(Classification),回归(Reg ...

  9. 33. Extjs中的tree节点的操作

      转自:https://blog.csdn.net/masterShaw/article/details/51354351?utm_source=blogkpcl9 ext 树节点操作   tree ...

  10. 深入浅出Android makefile(1)--初探(转载)

    转载:http://nfer-zhuang.iteye.com/blog/1752368 一.说明 android build system是一个非常庞大的系统,要编译Android工程.修改或新增A ...