读书人

实现接口的抽象方法和调用编译时提示异

发布时间: 2012-02-14 19:19:19 作者: rapoo

实现接口的抽象方法和调用编译时提示错误:缺少方法主体,或什么抽象
小弟在学习java中, 学到接口这章,想用接口的知识来做个:求n的倍数和幂数的测试。
在编译时提示:“ 缺少方法主体,或什么抽象”
子类实现接口的方法体中只含有for()循环体,提示错误难道是因为for()循环体不能做接口的方法体???

请各位高手帮帮忙啊!

一个接口包如下:
package b;

public interface bbb
{
public void jia();

public void cheng();

}


子类如下:(编译时提示 public void jia()和public void cheng(),缺少方法主体,或什么抽象)
import java.util.Scanner;
import b.bbb;

class Mainn implements bbb
{
static int n;
static int N;
int i;
public Mainn()
{
System.out.println("请输入目标整型数 n");
Scanner sc1 = new Scanner(System.in);
n=sc1.nextInt();
System.out.println("请输入求值目标边际 N:");
Scanner sc2 = new Scanner(System.in);
N=sc2.nextInt();
}
public void jia();
{
System.out.println("n 的倍数有:");
for(i=n;i<=N;i=i+n)
{
System.out.printf("%s"+" \n",i);
}
System.out.println();
}

public void cheng();
{
System.out.println("n 的幂数有:");
for(i=n;i<=N;i=i*i)
{
System.out.printf("%s"+" \n",i);
}
}

}


public class LX9_1
{
public static void main(String[] args)
{
Mainn m = new Mainn();
m.jia();
m.cheng();

}
}




后面改做不用接口的方法:(可以成功运行,但还是不懂为什么上面的方法不行啊,是哪里写错了??还是这样的做法是不行的??)
import java.util.Scanner;

public class Mainn
{
static Mainn m = new Mainn();
static int n;
static int N;
// int i;
public Mainn()
{
System.out.println("请输入目标整型数 n");
Scanner sc1 = new Scanner(System.in);
n=sc1.nextInt();
System.out.println("请输入求值目标边际 N:");
Scanner sc2 = new Scanner(System.in);
N=sc2.nextInt();
}
public static void main(String[] args)
{

// public void jia();
// {
int i;
System.out.println("n 的倍数有:");
for(i=n;i<=N;i=i+n);
{
System.out.printf("%s"+" ",i);
}
System.out.println();
// }
// public void cheng();
// {
System.out.println("n 的幂数有:");
for(i=n;i<=N;i=i*i)
{
System.out.printf("%s"+" ",i);
}

// }
}
}

//public class LX9_1
//{
// public static void main(String[] args)
// {
// Mainn m = new Mainn();
// m.jia();
// m.cheng();
//
//
// }
//}


[解决办法]
接口你都没用上啊,不考虑其它设计模式一般格式如下

接口名 变量名 = new 实现类名

只有就可以用接口变量访问实现类中的方法了
[解决办法]
实现接口的类在方法名后多写了个分号。
[解决办法]
public void jia();
{
System.out.println("n 的倍数有:");
for(i=n;i<=N;i=i+n)
{
System.out.printf("%s"+" \n",i);
}
System.out.println();
}

public void cheng();


{
System.out.println("n 的幂数有:");
for(i=n;i<=N;i=i*i)
{
System.out.printf("%s"+" \n",i);
}


public void jia();
public void cheng();
后面的分号去掉

[解决办法]
分号!!!!

读书人网 >J2ME开发

热点推荐