面试的时候问这么一道题,假如一个类A继承了类B并实现了接口C,如果父类B和接口C中有一个相同名字的方法func(),在类A中应该怎么处理。。
这,当时一想,以前好像真的碰到这个问题,但确实很弱智,你起名字不能商量一下? 他跟我说团队开发经常遇到这个问题,你们团队不开会吗。。不能协商好这种起名字的问题? 回来查了一下确实弱智,实际上是这样的,你在类A中需要重写func()方法,但是你重写的这个方法是继承自父类的func()并非接口中的func()方法.
如果你实在想既重写父类中的func()方法,又要实现接口中的func()方法,那么可以使用内部类的形式解决,代码如下:
1 | public class B { |
这,甚至要比改名字还麻烦?。。无语,真不知道问这种问题干啥。。