接口中的方法必须都实现,在抽象类可以继续把方法设为abstract从而不必实现,但在第一个非抽象子类中必须实现所有抽象方法

解决方案 »

  1.   

    /*文件名:a01181.java*/
    interface  fc
      {
         int k();//不必,因为interface默认为public和abstract的
         int  s1();
      }
    abstract class  a01181a implements fc//可以只实现一个方法,因为你这个类是abstract的,但如过没有abstract的话就必须实现
     {
       int a,b;
       a01181a(int a,int b)
        {
         this.a=3;
         this.b=4;
         }
    /*实现方法k*/
       public int  k()
         {
          return a*b;
          }
    //不实现方法S1,将它注释
     /* public int  s1()
          {return 0;}*/
      }
      

  2.   

    a01181a既然是抽象类,a01181中怎么能实现方法呢
    要不你把a01181 extends a01181a吧
      

  3.   

    package test;
    interface FcExample {
        int ko();
    int sl();
    }
    -----------------------
    package test;
    abstract class AbExample implements FcExample{
    int a = 3;
    int b = 4;
    AbExample(){}
        AbExample(int a,int b){
         this.a = a;
         this.b = b;
        }
        public int ko(){
         return a*b;
        }
        abstract public int sl();
    }
    --------------------------
    package test;
    public class Execute extends AbExample{
    public int test(){
    int s = 0;
    s = ko();
    return s;
    }
    public static void main(String[] args){
    Execute dd = new Execute();
    int t = dd.test();
    System.out.println(t);
    }
    public int sl(){
    return 0;
    }
    }
      

  4.   

    在Execute中,也可以不定义test(),在main中直接调用int t = dd.ko();
      

  5.   

    /*不好意思,可能我把问题没有说清楚,补充以下*/
    *文件名:a01181.java*/
    interface  fc
      {
         int k
         int  s1();
      }
    abstract class  a01181a implements fc
     {
       int a,b;
       a01181a(int a,int b)
        {
         this.a=3;
         this.b=4;
        }
    public int  k()
         {
          return a*b;
         }
    //不实现方法S1,将它注释
     /* public int  s1()
          {return 0;}*/
      }
    //以下需要在a01181类中实现结果,代码总是错误,请指点,
    /*******************************************************************/
    //这就是我的问题,我想在这个类中显示上面K方法的a*b的结果
     public class a01181 
      {
         //此处需要实现K方法中A*B的结果
       }
    /**********************************************************/
    2行*中间是我的问题。谢谢
      

  6.   

    public int  s1()此方法如果不实现就要声明为抽象函数,注释掉是不可以的。
    因为声明了抽象,所以要实现。
    因此
      //不实现方法S1,将它注释
      /* public int  s1()
          {return 0;}*/
       }
    个人认为是不可行的。
      

  7.   

    或者可以这样实现
    package test;
    interface FcExample {
        int ko();
    void sl();
    }
    ---------------------------
    package test;
    abstract class AbExample implements FcExample{
    int a = 3;
    int b = 4;
    AbExample(){}
        AbExample(int a,int b){
         this.a = a;
         this.b = b;
        }
        public int ko(){
         return a*b;
        }
        public void sl(){};
    }
    ------------------------------
    package test;
    public class Execute extends AbExample{
    public static void main(String[] args){
    Execute dd = new Execute();
    int t = dd.ko();
    System.out.println(t);
    }
    }
      

  8.   

    package test;
    abstract class AbExample implements FcExample{
        public static int a = 3;
        public static int b = 4;
        public int ko(){
         return a*b;
        }
        public void sl(){};
    }其实抽象函数写成这样更简单
      

  9.   

    看看类似java的规范就可以了。
      

  10.   

    楼上的各位兄台,记得在一本书上看到,说是:定义借口以后,如果借口中的方法在类中没有全部被实现,那么这个类要定义为抽象类,但抽象类不能被实例。我的问题,类a01181a 实现接口fc,fc中有2个方法,在类a01181a中只实现一个方法k,另一个方法s1被注释掉,是假设不实现此方法(如果实现,就什么问题都解决了),想要输出k方法中a*b的结果。a和b的值可以事先给定,也可以通过方法传递。因为抽象类不能实例,所以创建a01181类,但中间的代码怎么也成功不了。特发此贴。请大家予以指正。