这个Java接口代码有什么问题?

时间:2014-12-03 05:19:53

标签: java interface

public interface SomethingWrong {
    public void aMethod(int value) {
        System.out.print("Hi");
    }
} 

这是我第一次Java测验中的一个问题,我很擅长这个问题。

  1. 此代码有什么问题
  2. 如何解决它
  3. 此代码是否有误,因为界面不能包含任何方法或打印输出方法。

    测验的第二部分是这个

    以下代码是否有效假设对前一代码进行了更正

      public class Foo implements SomethingWrong {
      }
    
      SomethingWrong var = new Foo();
    

3 个答案:

答案 0 :(得分:-1)

       //Interface
       public interface SomethingWrong {
       public void aMethod(int value) 
       }
             //Implementation
             public class SomeThingRight implements SomethingWrong{
             @override
             public void aMethod(int value)
            {
                  System.out.println("hi"):
                 }

                }

接口没有方法定义。因为它们是100%抽象的。所以你的代码不应该包含实现

答案 1 :(得分:-1)

否。 1问题:

public interface SomethingWrong {
    public void aMethod(int value) {
        System.out.print("Hi");
    }
} 

答:界面中的方法不能有方法体。

否。 2问题:如何解决

答案:

public interface SomethingWrong{
    public void aMethod(int value);
}

只需删除方法正文并实现它,以便覆盖aMethod(int value);

附加1:

public class MainClass implements SomethingWrong{
    //Here since you implement the interface you are now required to override it in this class. 
    // You can do it by adding a method body.
    public void aMethod(int value){
        System.out.print("Hello World");
    }
}

附加2:

假设你有两个接口,你可以实现多个接口到一个类(具体或抽象),你永远不能实现到另一个接口的接口,但你可以将多个接口扩展到另一个接口。

附加3:

您无法创建接口或抽象类的新实例,因此这意味着您无法执行此操作:

SomethingWrong some = new SomethingWrong(); 

因为接口没有构造函数。如果我错了,请纠正我:))

答案 2 :(得分:-1)

添加default关键字,它将与Java 8编译器配合使用:

public interface SomethingWrong {
    default public void aMethod(int value) {
        System.out.print("Hi");
    }
}