码迷,mamicode.com
首页 > 编程语言 > 详细

Java访问子类对象的实例变量

时间:2015-03-19 12:52:33      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

对于Java这正语言来说,一般来说,子类可以调用父类中的非private变量,但在一些特殊情况下,

Java语言可以通过父类调用子类的变量

具体的还是请按下面的例子吧!

package com.yonyou.test;



/**
 * 测试类
 * @author 小浩
 * @创建日期 2015-3-2
 */

class Base
{
	// 定义了一个名为i的实例变量
	private int i = 2;
	public Base()
	{
		this.display(); //注意这里面的this代表当前正在运行的对象,即Derived对象
	}
	public void display()
	{
		System.out.println(i);
	}
}
// 继承Base的Derived子类
class Derived extends Base
{
	// 定义了一个名为i的实例变量
	private int i = 22;
	// 构造器,将实例变量i初始化为222
	public Derived()
	{
		i = 222;              //②
	}
	public void display()
	{
		System.out.println(i);
	}
}
public class Test
{
	public static void main(String[] args)
	{
		// 创建Derived的构造器创建实例
		new Derived();       //①
	}
}
	  

  最后的结果是多少呢?没错就是0,是不是很意外,这里你需要明白

public Base()
 {
 this.display(); //注意这里面的this代表当前正在运行的对象,即Derived对象
 }

  这里面的this指的是当前正在运行的那个对象,那么当前运行的对象是谁?没错,就是Derived对象,

     根据java创建对象时初始化对象的时机(http://www.cnblogs.com/xiohao/p/4349833.html),我们知道这时Derived中的变量i还没有初始化,所以最后的结果为:0

     好吧,今天就先到这里吧、、、

Java访问子类对象的实例变量

标签:

原文地址:http://www.cnblogs.com/xiohao/p/4349964.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!