java 小弟很多不明白,请各位高手指教public class Text{ public static void main(String[] agrs) { SubCalc sc = new SubCalc(); System.out.println(sc.multiply(3, 4)); System.out.println(SubCalc.multiply(2, 2)); }}class SuperCaic{ //public
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 06:54:18
java 小弟很多不明白,请各位高手指教public class Text{ public static void main(String[] agrs) { SubCalc sc = new SubCalc(); System.out.println(sc.multiply(3, 4)); System.out.println(SubCalc.multiply(2, 2)); }}class SuperCaic{ //public
java 小弟很多不明白,请各位高手指教
public class Text
{
public static void main(String[] agrs)
{
SubCalc sc = new SubCalc();
System.out.println(sc.multiply(3, 4));
System.out.println(SubCalc.multiply(2, 2));
}
}
class SuperCaic
{
//public static int c=10;
protected static int multiply(int a,int b){return a*b;}
}
class SubCalc extends SuperCaic
{
//public int c=10;
//SubCalc() { super.multiply(a, b); }
public static int multiply(int a,int b)
{
//int c = 0;
//return c+a+b;
//int c = 1;
//return a + b+c;
int c=super.multiply(a,b);
return c;
}
}
super.multiply(a,b);为什么会错误呢?super.multiply(a,b)这个东西返回的是静态的还是非静态的呢;如果我把父类和子类函数的静态关键字都去除了就可以运行,为什么呢?请各位高手多多指教,小弟万分感激
java 小弟很多不明白,请各位高手指教public class Text{ public static void main(String[] agrs) { SubCalc sc = new SubCalc(); System.out.println(sc.multiply(3, 4)); System.out.println(SubCalc.multiply(2, 2)); }}class SuperCaic{ //public
错误提示:
Cannot use super in a static context
意思便是不能用super调用静态的上下文,比如静态方法和静态成员变量
super可以调用的是父类的成员函数(即非静态的)和成员变量(即非静态的),需要调用父类的类函数和类变量则需要用父类名调用.
结合到楼主的例子里
int c=super.multiply(a,b);
应该为
int c=SuperCaic.multiply(a,b);