你猜这个题输出啥?-- java基础概念
最近在看java编程思想,大部分内容都觉得没啥意思,但是突然看到一个基本概念(似乎都忘了),于是写了测试题,我想这辈子也不会忘这个概念了。
题目如下:
public class Suber extends Last {
public Suber() {
//测试是否会调用父类构造方法
}
public Suber(int i) {
System.out.println("Suber(" + i + ")"); //测试父类是否会调用相同参数的该构造方法
}
public Suber(String i) {
super.CommonBase(i + "-su"); //测试直接调用父类指定的方法效果
System.out.println("Suber(" + i + ")");
}
public static void main(String[] args) {
Suber suber = new Suber();
System.out.println("==============main================");
Suber s2 = new Suber(1);
System.out.println("==============main=============");
Suber s3 = new Suber("3");
System.out.println("==============main=============");
}
}
class Base1 {
public Base1() {
System.out.println("Base1");
}
}
class CommonBase1 extends Base1 {
public CommonBase1() {
System.out.println("CommonBase1");
}
public void CommonBase(String i) {
System.out.println("CommonBase1(" + i + ")");
}
}
class Last extends CommonBase1 {
public Last() {
System.out.println("Last");
}
public Last(int i) {
System.out.println("Last(" + i + ")");
}
}
当我把这个题出给我的码农朋友看的时候,他们的第一反应是:谁TM写的代码,可读性也太差,要求重构。
但是说到具体输出结果时,他们还是有点怀疑的。
是的,咱们现在都是走的高级路线了,对于基础的东西,还真不一定把握得准。
结果如下:
Base1
CommonBase1
Last
==============main================
Base1
CommonBase1
Last
Suber()
==============main=============
Base1
CommonBase1
Last
CommonBase1(-su)
Suber()
==============main=============
结果解释: 一句话,初始化子类时,会默认调用父类的默认构造方法,原因是为了检查父类是否语法正确!!!
好吧,基础的东西,记一下得了,说不定面试的时候就遇到了呢!
你猜这个题输出啥?-- java基础概念的更多相关文章
- Java基础概念语法
Java基础概念语法 注释 单行注释 //行注释说明 多行注释 /* 多行注释说明 */ 文档注释 /** *@author 程序的作者 *@version 源文件的版本 *@param 方法的参数说 ...
- java基础概念整理综合 及补充(jdk1.8)
2018 java基础 笔记回顾摘要 一 1,html 与 注释: <!-- --> 注释不能嵌套 代码都得有注释. 2,空格符: 3,css选择的优先级: id选择器 > ...
- 2016第20周四java基础概念
简单的说JDK=JRE+Java编译器.调试器.工具类库等:JRE=JVM(类似于jre目录下的bin)+必要运行的类库(类似于jre目录下的lib) JVM:Java Virtual Mechina ...
- Java 学习(2):java 基础概念
Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 基础语法: 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.以 ...
- java基础概念经典题目汇集
1.下面是People和Child类的定义和构造方法,每个构造方法都输出编号.在执行new Child("mike")的时候都有哪些构造方法被顺序调用?请选择输出结果 ( ) cl ...
- Java基础概念1
一.Java数据类型 1.byte 字节型 1byte = 8bit 表示数范围:-2^7~2^7-1(-128~127): 2.short 短整型 2 byte = 16bit 表示数范围:-2^1 ...
- JAVA基础概念(三)
JAVA方法入参和返回类型 方法入参 基础数据类型 引用数据类型 修饰符 返回类型 方法名(参数类型 参数名,参数类型 参数名...){//方法体return} 方法返回类型 return xxx 具 ...
- JAVA基础概念(一)
一.JAVA标识符 标识符就是用于给 Java 程序中变量.类.方法等命名的符号.如图标黄部分: 使用标识符时,需要遵守几条规则: 1. 标识符可以由字母.数字.下划线(_).美元符($)组成,但不 ...
- java基础概念
jre是java运行环境 jdk是java开发工具包 java源文件←编译class字节码文件←运行结构
随机推荐
- Welcome to my Blog
Only English? Oh my god!!! why open live write can't write by Chinese?
- mac Ubuntu 设置快捷进入目录
在我们实际工作中,好多时间需要经常性的进入某个目录查看文件等等之类的操作. 好多时候我们都是在终端一级一级的进入目录,相比较Windows的快捷方式有点繁琐. 废话少说,下面就是设置快捷方式的方法: ...
- PHP导出生成CSV文件
composer 用起来是非常方便的 所以我是依赖composer来做的包管理 1.先安装composer 自行百度一下composer安装以及使用 2.用composer下载安装office包即可 ...
- C#中string,char[],byte[]互相转换
string 转换成 Char[] string ss = "我爱你,中国"; char[] cc = ss.ToCharArray(); Char[] 转换成string str ...
- 企业账号打包如何通过HTML页面打开
企业账号打包后 Plist文件加入前缀 href="itms-services://?action=download-manifest&url= Plist文件在服务器中的地址为:h ...
- Maven学习(三)
maven相关概念 maven坐标 Maven世界拥有大量构建,当我们需要引用依赖包是,需要用一个用来唯一标识去确定唯一的一个构建.如果拥有了统一规范,就可以把查找工作交给机器. 类似于空间找点的坐标 ...
- javaWeb学习总结(11)- 监听器(Listener)学习(2)
一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信 ...
- SSH实现无密码验证登录
http://blog.csdn.net/houqd2012/article/details/8544517
- cuda学习2-block与thread数量的选取
由上一节可知,在main函数中,cuda程序的并行能力是在add<<<N,1>>>( dev_a, dev_b, dev_c )函数中体现的,这里面设置的是由N个b ...
- (转)java匿名内部类详解
原文:http://android.blog.51cto.com/268543/384844/ 内部类是指在一个外部类的内部再定义一个类.类名不需要和文件夹相同. *内部类可以是静态static的 ...