帮忙看看错在哪里!!!

yunjixiaoxiang 2005-10-07 05:33:27
abstract class Test
{
public abstract int addition();
public abstract int subtration();
public abstract int multiplication();
public abstract int division();
}
class OverloadTest extends Test
{
public int addition(int x, int y)
{
return x + y;
}
public int subtration(int x, int y)
{
return x - y;
}
public int multiplication(int x, int y)
{
return x * y;
}
public int division(int x, int y)
{
return x / y;
}
public static void main(String[] args)
{
private int x = 10;
private int y = 10;
addition(x, y);
subtration(x, y);
multiplication(x, y);
division(x ,y);
}
}

编译有错 请大家看看错在哪里
...全文
331 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxbjlu1983 2005-10-09
  • 打赏
  • 举报
回复
三:在静态方法main()中不可以调用非静态方法;
四:在静态方法中不可以申明带访问修饰符的变量(如果有修饰符只能是final),因为方法中定义的变量是局部变量。
zxbjlu1983 2005-10-09
  • 打赏
  • 举报
回复
一:要想实现多态必须覆盖抽象类的abstract方法(如果要覆盖方法名,方法特征签名,返回类型必须相同),但是在你的OverloadTest中只是重新定义了一些新方法。

二:既然你没有覆盖父类的abstract方法,那么你就继承了那些abstract方法,如果类中有abstract方法那此类必须申明为abstract类。
zhouyong80 2005-10-09
  • 打赏
  • 举报
回复
main方法被声明为public static的,所以无须创建实例外部方法就应该能访问它的成员变量和函数,所以成员变量不能被声明成private的,这是我的看法,希望高手指教
zhouyong80 2005-10-09
  • 打赏
  • 举报
回复
静态方法中不能有private型变量.
yunjixiaoxiang 2005-10-08
  • 打赏
  • 举报
回复
为什么在main()中 把int x = 10; int y = 10;
改为private int x = 10;
private int y = 10;
编译器会提示错误啊
trumplet 2005-10-08
  • 打赏
  • 举报
回复
是没有输出啊,因为你没让它输出嘛。
不光没有输出,就连+-×÷四个返回值都被扔掉啦。

你得让它输出呀:
System.out.println(olt.addition(x, y));
System.out.println(olt.subtration(x, y));
System.out.println(olt.multiplication(x, y));
System.out.println(olt.division(x ,y));
yunjixiaoxiang 2005-10-08
  • 打赏
  • 举报
回复
abstract class Test
{
int x,y;
public abstract int addition(int x, int y);
public abstract int subtration(int x, int y);
public abstract int multiplication(int x, int y);
public abstract int division(int x, int y);
}
class OverloadTest extends Test
{
public int addition(int x, int y)
{
return x + y;
}
public int subtration(int x, int y)
{
return x - y;
}
public int multiplication(int x, int y)
{
return x * y;
}
public int division(int x, int y)
{
return x / y;
}
public static void main(String[] args)
{
int x = 10;
int y = 10;
OverloadTest olt=new OverloadTest();
olt.addition(x, y);
olt.subtration(x, y);
olt.multiplication(x, y);
olt.division(x ,y);
}
}
改成这样为何没输出啊 编译通过了
hell_wolf 2005-10-08
  • 打赏
  • 举报
回复
函数类型得一致
yc_cjx 2005-10-07
  • 打赏
  • 举报
回复
基本概念不是很清楚!!
zyxzyx10 2005-10-07
  • 打赏
  • 举报
回复
public static void main(String[] args)
{
private int x = 10;
private int y = 10;
addition(x, y);
subtration(x, y);
multiplication(x, y);
division(x ,y);
}

to:

public static void main(String[] args)
{
int x = 10;
int y = 10;
Test t = new OverloadTest();
t.addition(x, y);
t.subtration(x, y);
t.multiplication(x, y);
t.division(x ,y);

}
至于为什么请你去看看书了,重点看多态这部分
共同进步
mahb520 2005-10-07
  • 打赏
  • 举报
回复
abstract class Test
{
int x,y;
public abstract int addition(x,y);
public abstract int subtration(x,y);
public abstract int multiplication(x,y);
public abstract int division(x,y);
}
class OverloadTest extends Test
{
public int addition(int x, int y)
{
return x + y;
}
public int subtration(int x, int y)
{
return x - y;
}
public int multiplication(int x, int y)
{
return x * y;
}
public int division(int x, int y)
{
return x / y;
}
public static void main(String[] args)
{
private int x = 10;
private int y = 10;
OverloadTest olt=new OverloadTest;
olt.addition(x, y);
olt.subtration(x, y);
olt.multiplication(x, y);
olt.division(x ,y);
}
}
wlmmlw 2005-10-07
  • 打赏
  • 举报
回复
楼主给类起了个OverloadTest的名字,不知何意?

---初学者
trumplet 2005-10-07
  • 打赏
  • 举报
回复
更正:应该是:
(2)
main主函数里,没有OverloadTest类的实例,不能调用该类的“非静态”方法。
trumplet 2005-10-07
  • 打赏
  • 举报
回复
据目测,至少有2个错误。

(1)
public abstract int addition();
public abstract int subtration();
public abstract int multiplication();
public abstract int division();
这四个抽象方法没有被实现。
因为public abstract int addition()和public abstract int addition(int int)是两个不同的方法。

(2)
main主函数里,没有OverloadTest类的实例,不能调用该类的“非抽象”方法。
yanloveyan2004 2005-10-07
  • 打赏
  • 举报
回复
static 方法中调用的方法也应是static
superslash 2005-10-07
  • 打赏
  • 举报
回复
public static void main(String[] args)
{
private int x = 10;
private int y = 10;
addition(x, y);
subtration(x, y);
multiplication(x, y);
division(x ,y);
}
方法中先实例化一对象后再调用addition(x, y)等
OverloadTest o=new OverloadTest();
o.addition(10,10)

superslash 2005-10-07
  • 打赏
  • 举报
回复
abstract class Test
{
public abstract int addition();
public abstract int subtration();
public abstract int multiplication();
public abstract int division();
}
中所有方法没带参数

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧