实现接口的抽象方法和调用编译时提示错误:缺少方法主体,或什么抽象
小弟在学习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();