如何在Java中实现接口方法

Vis*_*G S 0 java interface

编译以下代码时,编译器显示错误:

InterfaceTest.java:19:错误:找不到符号knightObj.dispBK();

public class InterfaceTest{
    public static interface Knight{
        public void embark();
    }
    public static class BraveKnight implements Knight{
        private int id;
        public BraveKnight(int id){
            this.id = id;
        }
        public void dispBK(){
            System.out.println("ID: "+id);
        }
        public void embark(){
            System.out.println("ID: "+id);
        }
    }
    public static void main(String[] args){
        Knight knightObj = new BraveKnight(101);
        knightObj.dispBK();
    }
}
Run Code Online (Sandbox Code Playgroud)

可能的原因是什么?

Zer*_*One 6

Knight是你的界面,它没有定义一个叫做的方法dispBK().您的knightObj对象是类型Knight,因此您需要将其强制转换BraveKnight为能够调用该dispBK()方法.

或者,您可以将dispBK()方法添加到界面中.

你的第三个选择是像这样初始化你的对象:BraveKnight knightObj = new BraveKnight(101);.

我热烈推荐使用Eclipse之类的IDE,它们会像这样容易出错.