如何声明返回接口实例的方法

时间:2016-09-02 07:59:59

标签: java

所以我对Java有点新意。我刚刚介绍了接口,我必须创建一个返回接口Chassis

的实例的方法

以下是代码:

public interface Chassis {
    public String Chassis = "Chassis";

    public static void main(String[] args) {
        public String getChassisType() {
            return Chassis;
        }       

问题是,我一直得到错误,抽象方法不能有一个正文(如blockquote所示)但我没有将我的方法声明为抽象。

什么似乎是问题?

3 个答案:

答案 0 :(得分:1)

您有两个问题,您不能将方法放在另一个方法中,也不能在Java的接口中定义这样的方法。在Java 8中,您可以执行此操作

public interface Chassis {

    String Chassis = "Chassis";

    default String getChassisType(){
        return Chassis;
    }
}  

我不会在界面中定义您的public static void main。虽然现在允许,但大多数开发人员会发现这令人困惑。请参阅@Jürgen的答案,正如大多数有经验的开发人员所说的那样。

我会创建另一个类

public class Main {
    public static void main(String... args) {
        // an anonymous subclass so you have something to create/call.
        System.out.println(new Chassis(){}.getChassisType());
    }
}

答案 1 :(得分:0)

界面是一种抽象。它无法实例化,它只能声明方法和属性而不是定义。您只能在类中实现它,如果您在类中执行它,则必须定义在接口中声明的所有方法。需要定义主方法以执行程序。所以它不应该放在界面内。改变你的代码,如下所示

public interface chassis
{ 
 String Chassis;
 public String chassis();
}
public class example implements chassis
{
 public String chassis()
 {
 Chassis="chassis";
 return Chassis; 
 }
 public static void main(String[] args) 
 {
 System.out.println(new example().getChassisType());
 }
}

答案 2 :(得分:-1)

此代码根本不起作用。 main方法仅对类有效,对接口无效。

编辑:如下所述答案不正确。但是在方法中使用方法仍然不起作用。请参阅其他答案。