2013-05-31 26 views
0

我有下面的类扩展:无法使用超级命令

public class Compute1 extends Compute_node{ 


private static final Long[] P = new Long[18]; 



// Constructor, string key. 
public Compute1(String keyStr) 
{ 
super(0, 8); 
setKey(keyStr); 
} 

public void setKey(integer key) 
{ 
integer i, j, k; 
long data; 
integer N = 16; 
// Initialize P and S. 
for (i = 0; i < N + 2; ++i){ 
    P[i] = Pinit[i]; 
    } 

    // XOR the key into P. 
j = 0; 
for (i = 0; i < N + 2; ++i) 
    { 
    data = 0; 
    for (k = 0; k < 4; ++k) 
    { 
    data = (data << 8) ; 
    ++j; 
    } 
    P[i] ^= data; 
    } 

}  

private static final long[] Pinit = new Long[] { 


604135516L, 2242044355L, 320440478L , 57401183L, 
    2732047618L, 698298832L, 137296536L , 3964563569L, 
    1163258022L, 954160567L, 3193502383L, 887688400L, 
    3234508543L, 3380367581L, 1065660069L, 3041631479L, 
    2420952273L, 2306437331L 
    }; 
} 

但即时得到一个错误:

错误:编译错误:方法不存在或不正确的签名:[Compute_node](整数,整数)维持在11行5列

super(0, 8); 

为什么不能我用的是超级KEYWO在这里?

我正在使用扩展! 我有一个Compute_node类!

谢谢

+0

你可以编辑和包含原始类吗?超级方法与它正在扩展的类有关。 –

回答

2

super()关键字借用其父类的构造函数。您需要查看Compute_node的构造函数,并确保其参数与您通过super()传递的参数相匹配。举例来说,如果你在Compute_node构造函数是

public Compute_node(int a) { 
    //code 
} 

那么你绝对会得到一个错误,指出该方法Compute_node(整数,整数)不存在。为了得到更好的答案,请将源代码编辑为Compute_node。

+0

好的我认为我的父母班是完全错误的,让我看看它,谢谢你的帮助, – user2333346