java初始化过程中成员变量
2024-08-31 14:25:07
package day01;
class Base{
int j; //1.j=0
Base(){
add(1); //2.调用子类add()方法
System.out.println(j); //4,父类j=0,打印0
}
public void add(int i) {
j=j+1;
}
}
class MyBase extends Base{
int j=5; //5,j=5
MyBase(){
System.out.println(j); //打印5
}
public void add(int i) {
j=j+i+1;
System.out.println(j); //3, 此时子类j还没显示初始化,默认值0,j=2,打印2
}
}
public class Tester {
public static void main(String[] args) {
new MyBase();
}
}
2
0
5
但是当稍微改变下时,
package day01;
class Base{
public int j; //1.j=0
Base(){
add(1); //2.调用子类add()方法
System.out.println(j); //4,这里为什么打印2,不该是0吗?why?
}
public void add(int i) {
j=j+1;
}
}
class MyBase extends Base{ MyBase(){
System.out.println(j);
}
public void add(int i) {
j=j+i+1;
System.out.println(j); //3, 此时子类j还没显示初始化,默认值0,j=2,打印2
}
}
public class Tester {
public static void main(String[] args) {
new MyBase();
}
}
/* 2
* 2
* 2
*/
最新文章
- tips of my ubuntu 16.04 LTS
- 开发Portlet第三步:如何在Crystal Portlet中调用远程服务?
- 跳转至指定ViewController
- NOIP200301乒乓球
- 传话游戏—C++
- sqoop的安装和使用
- adb 获取手机值
- iOS第三方库
- ActionBar之style出现Cannot resolve symbol 'Theme' 错误
- spring学习总结一----控制反转与依赖注入
- JavaScript命令模式
- js利用闭包封装自定义模块的几种方法
- NodeJS脚本启动工具总结
- 【ShaderToy】抗锯齿相关函数
- qt程序编译错误:could not exec ‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake’
- docker 安装软件
- Miller_Rabin整理笔记
- 鼠标增强软件StrokeIt使用方法
- #20155319 2016-2017-2 《Java程序设计》第3周学习总结
- VC++为你的程序增加内存泄露检测
热门文章
- 【Codeforces Round #239 (Div. 1) B】 Long Path
- 去掉vs2010字符串下红色波浪线
- [React] Implement a Higher Order Component with Render Props
- apache kafka监控系列-KafkaOffsetMonitor
- 78.Nodejs基础中间件Connect
- BZOJ 1598 第k短路
- css3 实现动画效果
- selenium+python 安装使用
- Copying GC (Part two :Multi Space Copying GC)
- python 爬虫使用