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