我发现java定义的接口,里面的方法必须全部都要重写,不然会编译报错,是这样吗?

如题所述

不一定,看子类是否是抽象类。子类非抽象类,需要实现接口所有方法,子类是抽象类可以不实现接口所有方法。追问

那重写方法的时候写与不写@Override有什么区别?

追答

@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以通过的(它以为这个方法是你的子类中自己增加的方法)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-11
不是。可以声明为抽象类。