java的多重继承问题,很基础,但是我不会,帮忙看看

来源:百度知道 编辑:UC知道 时间:2024/06/20 15:02:15
public class test1 extends A implements B{
public void px(){
System.out.println();
}

public static void main(String args[]){

test1 s= new test1();
System.out.println(s.x);

}

}

class A{
int x=0;
}

interface B{
int x=1;
}

假如test1集成了A和B,但是A和B里面都有一个变量x,编译的时候就报错了。我想在test1里面调用A的x,如何写?

首先,你的A 和B里的x必须不能叫同一个变量名,可以把B中的x改为其它名称。
改完后,你程序中的s.x实际上就是调用的A的x .

B中的x换成大写,interface中定义的大多都是常量,加上final关键字.
final int X = 1;
养成好的习惯就可以避免这种麻烦

//第一种方法,把 class A 改成 interface A,然后在test1中调用x
interface A
{
int x=0;
}

interface B
{
int x1=1;
}

class test1 implements A, B
{
public void fA()
{
System.out.println(A.x);
}
public void fB()
{
System.out.println(B.x1);
}
}

class Test
{
public static void main(String args[]) //主方法必须放在类里
{
test1 s= new test1();
s.fA();
s.fB();
}
}

//第二种方法,把B接口里的x 换个名字
class A
{
int x=0;
}

interface B
{
int x1=1;
}

class test1 extends A implements B
{
public void px()
{
System.out.printl