如何让 类 实现接口并根据 Java 中的给定参数打印其方法?

How can I make classes implement an interface and print their methods based on a given parameter in Java?

我认为这可能是一个非常基本的 Java 问题,我很抱歉,因为我是初学者,但我想了解我在这里犯了什么错误:我应该创建一个包,在其中,我必须创建以下内容:

到目前为止我想出了这个,但是代码接收了输入,但什么也没做:

界面

public interface Test {
    
    public static void testInterface() {
        
    }

}

public class Teste {

    public static void main(String[] args) {
        
        class A implements Test {
            
            public void testInterface() {
        
                System.out.println("A");
            }
        }
    
        class B implements Test {
        
            public void testInterface() {
            
                System.out.println("B");
            }
        
        }
    
        class C extends B {
        
            public void testInterface() {
            
                System.out.println("C");
            }
        
        }
        
        Scanner inputLetter = new Scanner(System.in);  // Create a Scanner object
        System.out.println("Enter a letter from A to C: ");

        String resLetter = inputLetter.nextLine();  // Read user input
        
        if (resLetter == "A") {
            A a = new A();
            a.testInterface();
        }
        
        if (resLetra == "B") {
            B b = new B();
            b.testInterface();
        }
        
        if (resLetra == "C") {
            C c = new C();
            c.testInterface();
        }

    }

}

老实说,我可能也弄乱了代码的结构,因为我不太确定应该如何组织它 - 我没有创建 Execute 方法,因为我遇到了很多麻烦在没有 main 方法的情况下创建 classes,并且无法将一个方法放入另一个方法中,我希望在我尝试更大胆的事情之前尽可能简单地使其工作,所以任何帮助都会非常有用值!

你做得很好。我将 post 一些信息来帮助您克服当前的障碍。

public interface MyTestInterface {
    void testInterface();
}

接口只会“宣布”一个方法。这只是告诉您(和编译器)任何实现 MyTestInterface 的 Class 都必须提供一个名为 testInterface() 的方法。不要让它们成为静态的,因为这会阻止任何 class 实现接口覆盖方法。

将您的 classes 放入他们自己的 .java 文件中。虽然您可以在 class 中定义 class(所谓的内部 Class),但它有一些含义。

A.java

public class A implements MyTestInterface {
    @Override
    public void testInterface() {
        // Objects of Class A do something here
    }
}

MyMain.java

public class MyMain {

    public static void main(String[] args) {
        MyTestInterface implementedByA = new A();
        implementedByA.testInterface();
    }
}

由于它实现了MyTestInterface,Class A 的对象既是A 的实例又是MyTestInterface 的实例。这允许您声明一个 MyTestInterface 类型的变量并为其分配一个实现 class.

的实现

正如@Amongalen 提到的:How do I compare strings in Java?