当前位置: 技术问答>java相关
JAVA中继承的问题???
来源: 互联网 发布时间:2015-10-20
本文导语: 我的第一个类: class test3 {public static void main(String[] args){ int x=100; System.out.println(x); } }; 我的第二个类: class test4 extends test3 {public static void main(String[] args){ int x=300; System.out.println("this class"+x); System.out.println("...
我的第一个类:
class test3
{public static void main(String[] args){
int x=100;
System.out.println(x);
}
};
我的第二个类:
class test4 extends test3
{public static void main(String[] args){
int x=300;
System.out.println("this class"+x);
System.out.println("super class"+super.x);
}
};
我的第二个类有什么错误呢??
我编译的时候怎么出现:
test4.java:5: 在静态上下文中不能引用非静态变量 supe
System.out.println("super class"+super.x);
^
test4.java:5: 不能解析符号
符号:变量 x
位置:类 in test3
System.out.println("super class"+super.x);
^
这种错误呢?
class test3
{public static void main(String[] args){
int x=100;
System.out.println(x);
}
};
我的第二个类:
class test4 extends test3
{public static void main(String[] args){
int x=300;
System.out.println("this class"+x);
System.out.println("super class"+super.x);
}
};
我的第二个类有什么错误呢??
我编译的时候怎么出现:
test4.java:5: 在静态上下文中不能引用非静态变量 supe
System.out.println("super class"+super.x);
^
test4.java:5: 不能解析符号
符号:变量 x
位置:类 in test3
System.out.println("super class"+super.x);
^
这种错误呢?
|
我修改的程序如下:
class test3{
int x=100; //这是一个实例变量
public static void main(String[] args){//这是一个静态方法不可以引用x
test3 Out = new test3();
Out.out();}
public void out(){ //这是一个非静态的方法,
System.out.println(x);} //可以引用实例变量x。
}
public class test4 extends test3{
static int x = 200; //这是一个静态变量
public static void main(String args[]){ //静态方法允许访问静态变量
System.out.println("current class x"+x);
test4 hehe = new test4();
hehe.abc();
}
public void abc(){ //必须用非静态的方法访问父类
///的变量实例
System.out.println("super class x"+super.x );}
}
1.静态(static)方法可以只操作静态变量,它们不能访问定义在类或父类中的实例变量。
2.在程序:public static void main(String[] args)
{
int i=10;
System.out.println("i="+i);
}
中,main方法是定义了一个实例变量i,而不是去引用(访问)它,如果i是定义在main方法程序段外,则main方法是不可访问到i的。
class test3{
int x=100; //这是一个实例变量
public static void main(String[] args){//这是一个静态方法不可以引用x
test3 Out = new test3();
Out.out();}
public void out(){ //这是一个非静态的方法,
System.out.println(x);} //可以引用实例变量x。
}
public class test4 extends test3{
static int x = 200; //这是一个静态变量
public static void main(String args[]){ //静态方法允许访问静态变量
System.out.println("current class x"+x);
test4 hehe = new test4();
hehe.abc();
}
public void abc(){ //必须用非静态的方法访问父类
///的变量实例
System.out.println("super class x"+super.x );}
}
1.静态(static)方法可以只操作静态变量,它们不能访问定义在类或父类中的实例变量。
2.在程序:public static void main(String[] args)
{
int i=10;
System.out.println("i="+i);
}
中,main方法是定义了一个实例变量i,而不是去引用(访问)它,如果i是定义在main方法程序段外,则main方法是不可访问到i的。