黑马程序员技术交流社区
标题:
继承问题
[打印本页]
作者:
左耳的鱼
时间:
2013-7-12 21:44
标题:
继承问题
本帖最后由 左耳的鱼 于 2013-7-16 21:03 编辑
class Fu{
int num = 4;
Fu(){
num = 5;
}
}
class Zi extends Fu{
int num = 6;
public void method(){
int num = 7;
System.out.println(num);
}
}
class Test{
public static void main(String[] args) {
Zi z = new Zi();
z.method();//如果想输出6怎么改,如果想输出5怎么做,能否输出4?
}
}
作者:
在乎..
时间:
2013-7-12 22:04
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
Zi z = new Zi();
z.method();
}
}
class Fu{
int num = 4;
Fu(){
num = 5;
}
}
class Zi extends Fu{
int num = 6;
public void method(){
int num = 7;
System.out.println(num); // 7的情况
System.out.println(this.num); //6 的情况 ,本类的成员变量
System.out.println(super.num); //5的情况 , 父类的成员变量,因为局部num 与成员变量名字相同,所以num=5,实际上是this.num=5;
}
}
复制代码
//this.num 的值都被改变了,你说怎样输出呢?除非你去掉那个你自己定义的构造函数,使用默认函数 System.out.println(super.num); 会输出4!
望采纳
作者:
闲人忙啊
时间:
2013-7-13 22:21
你要输出的num是method方法里的局部变量,并将7赋值给了该num,所以可以把该方法语句System.out.println(num);中的num改成this.num,将其变为Fu类的成员变量,再通过对象引用,给num赋一个你想输出值就好了.希望我的回答可以帮助到你!
class Fu{
int num = 4;
Fu(){
num = 5;
}
}
class Zi extends Fu{
int num = 6;
public void method(){
int num = 7;
System.out.println(this.num);
}
}
class Test{
public static void main(String[] args) {
Zi z = new Zi();
z.num=1;//这里你想输出什么数字就赋值什么数字
z.method();
}
}
复制代码
作者:
Alice_☆_晓柒
时间:
2013-7-14 21:49
首先z.method();先输出7,因为内部有的话先不出去找,如果想打印5,则可以加上this访问当前对象,如果打印4,则可以尝试加上类名称.this.num
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2