Java笔试面试必考的题,有时候是简答,有时候是看程序写结果。笔试中科院自动化所(Web 开发)、中搜在线(高级测试)、中国网(Java开发)、易宝支付(Java开发)都出现过。下面就自己的理解做一个详细的阐述。
1)接口(interface)是Java中实现多态的重要途径之一,一个接口可以被多个类实现,一个类可以实现多个接口,但只能继承一个抽象类;
2)如果在接口中增加一个抽象方法,实现这个接口的类要么实现这个方法,要么改为抽象类,否则无法编译通过;而抽象类中可以为部分方法提供默认的实现,从而避免在子类中重复实现它们,所以在抽象类中加入具体方法不会影响子类;
3)接口一般作为系统与外界交互的窗口,所以接口一旦确定不能随意更改;而抽象类一般做为系统的扩展点。
其实这个问题还可以引申出很多问题,面试中曾遇到过以下问题:
1)C++是如何实现多态的,虚函数和纯虚函数的作用是什么?
2)自己写一个狗咬人,猫咬人的简单程序来阐述接口是如何实现多态的?
3)看程序写结果,比如:一个类实现了一个接口,而这个接口继承了另外两个接口。