java类实现interface以后如何调用

如题,以下代码运行报错,应该这么运行起来呢?

//TestInterface.java

public interface Singer{
    public void sing();
    public void dance();
}

public interface Women{
    public void cook();
    public void care();
}

class Student implements Singer {
    private String name;
    Student(String _name) {
        this.name = _name;
    }
    
    public void sing() {
        System.out.println(this.name + " is singing!");
    }
    
    public void dance() {
        System.out.println(this.name + " is dancing!");
    }
}

class Teacher implements Women, Singer {
    private String name;
    
    Teacher(String _name) {
        this.name = _name;
    }
    
    public void sing() {
        System.out.println(this.name + " is singing!");
    }
    
    public void dance() {
        System.out.println(this.name + " is dancing!");
    }
    
    public void cook() {
        System.out.println(this.name + " is cooking!");
    }
    
    public void care() {
        System.out.println(this.name + " is caring!");
    }
}

public class TestInterface {
    public static void main(String args[]) {
        Student s = new Student("li");
        s.sing();
        s.dance();
        
        Teacher t = new Teacher("wang");
        t.sing();
        t.dance();
        t.cook();
        t.care();
    }
}

运行结果(java 13,不用javac编译)
image.png

阅读 3.1k
1 个回答
新手上路,请多包涵

interface 前的public修饰符去掉。
一个.java文件中只能有一个public修饰的同名class、interface或enum

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题