Java中的接口和方法?

Java中的接口和方法?,java,methods,Java,Methods,所以,我在破译作业时遇到了一点问题,它的措辞如下: “在c:\myjava文件夹下创建一个接口文件Animalize.java。声明一个不带参数但返回字符串类型的方法myLanguage()。再声明一个您选择的方法。(ii)创建三个不同的类Dog.java Cat.java和Lion.java,让它们实现Animalize接口。这意味着每个类都需要在Animalize接口中声明方法。(iii)创建一个类AnimalTest.java,在该类的主方法中实例化另外三个创建的类,并为每个类调用方法 然

所以,我在破译作业时遇到了一点问题,它的措辞如下:

“在c:\myjava文件夹下创建一个接口文件Animalize.java。声明一个不带参数但返回字符串类型的方法myLanguage()。再声明一个您选择的方法。(ii)创建三个不同的类Dog.java Cat.java和Lion.java,让它们实现Animalize接口。这意味着每个类都需要在Animalize接口中声明方法。(iii)创建一个类AnimalTest.java,在该类的主方法中实例化另外三个创建的类,并为每个类调用方法

然后,通过在命令提示符下给出javac Animalize.java Cat.java Dog.java Lion.java AnimalTest.java命令来保存和编译。使用命令java AnimalTest运行,确保没有错误并修复(如果有)。将(A)的答案写入java注释顶部的同一文件AnimalTest.java中

提示:Animalize接口的方法声明如下:

public String myLanguage();
Cat类将通过在类定义中首先有一行来实现Animalize

public class Cat implements Animalize
然后有一个方法

public String myLanguage()
{
            System.out.println(“Meow”);
}
在动画化界面中添加与其他方法对应的其他方法。“

我使用以下代码创建了上面指定的所有文件:

使动物化:

类别:

狗:

狮子:

动物试验:

当我编译上面指定的所有类时,我在命令行中收到以下错误:


我把这些东西弄得一团糟,似乎弄不明白问题所在,甚至我的作业做得很对。除了错误之外,文件中是否有任何看起来完全错误的内容?我甚至不知道从哪里开始。谢谢所有能帮助我的人

接口不能有主方法。请仔细阅读


在main()方法中有一个声明为“publicstatic”的变量。局部变量(方法内部的变量)不能声明为公共变量或静态变量。

您的代码中存在大量问题,我无法完成您的家庭作业。首先@Adithya Surampudi是正确的,接口不能有main方法。其次,方法
myLanguage
将不起作用:

public String myLanguage() {
    return System.out.println("Woof");
    // instead do something like this
    return "Woof";
}

第三,您没有遵守第三条要求。您的主要方法应在
AnimalizeTest
中定义,而不是在
Animalize
中定义。只是一些提示…

好的,这样可以在继续编写代码时省去一些麻烦。接口提供了实现者必须遵守的契约。在Java中,关键字接口是一组方法及其签名,没有实现。这与可能提供实现的抽象类不同。方法签名称为契约,返回类型加上参数

不能像其他人所说的那样在接口中使用main。当您有一个要遵守的合同时,System.out不是您获取字符串信息的方式。它所做的是将恰好类似于字符串的字符块放出来。

  • 接口中不允许使用静态修饰符。它可以是抽象的,也可以是公共的

    public static void main (String a[]) // wrong
    
    public void main (String a[]) // correct
    
  • 接口中只允许方法签名

正确的实现可以是这样的

       public interface Animalize {
                                    public String myLanguage();
                                  }

         public class Cat implements Animalize
         {
             public String myLanguage()
             {

             }
         }

         public class Dog implements Animalize
         {
             public String myLanguage()
             {

             }
         } 

         public class Lion implements Animalize
         {
             public String myLanguage()
             {

             }
         } 


         public class AnimalTest
         {
             public static void main (String a[])
             {
               Cat cat=new Cat();
               cat.myLanguage();
               Dog dog=new Dog();
               dog.myLanguage();

             }
         } 

您需要仔细阅读
接口
声明的语法。这将清楚地说明为什么您会看到这些错误消息。正如dlev提到的,您需要做一些背景阅读,尝试作为起点,特别是下面引用的接口部分。
        public class Lion
{
}
      class AnimalTest{

public class Dog implements Animalize{
public String myLanguage(){
return
System.out.println("Woof");
}
}

}
Animalize.java:3: illegal start of expression
public static String myLanguage();
^

Animalize.java:3: illegal start of expression
public static String myLanguage();
       ^

Animalize.java:3: ';' expected
public static String myLanguage();
                    ^
public String myLanguage() {
    return System.out.println("Woof");
    // instead do something like this
    return "Woof";
}
public static void main (String a[]) // wrong

public void main (String a[]) // correct
       public interface Animalize {
                                    public String myLanguage();
                                  }

         public class Cat implements Animalize
         {
             public String myLanguage()
             {

             }
         }

         public class Dog implements Animalize
         {
             public String myLanguage()
             {

             }
         } 

         public class Lion implements Animalize
         {
             public String myLanguage()
             {

             }
         } 


         public class AnimalTest
         {
             public static void main (String a[])
             {
               Cat cat=new Cat();
               cat.myLanguage();
               Dog dog=new Dog();
               dog.myLanguage();

             }
         }