我通常不会发布这么简单的内容,但是这个问题使我挠头了一段时间。
我正在尝试覆盖子类中的方法,但收到以下错误消息:
我的BitCompressor.java
扩展了Compressor.java
并尝试覆盖其encodeInput(...)
方法,但是当我编译时,出现以下错误:error: method does not override or implement a method from a supertype
上面的屏幕快照显示了原始方法(中间),试图重写该方法的子类(顶部)和错误(底部)。
有什么想法吗?谢谢。
答案 0 :(得分:5)
删除static关键字。您不能覆盖静态方法
要覆盖一个方法,它必须是具有超类可见性的普通实例方法(即,公共,受保护或可能是程序包私有),并且未标记为final。
默认情况下,Java中的每个非静态方法都是虚拟方法,最终和私有方法除外。这些虚拟方法是多态的,可以覆盖。