接口和抽象类的区别

Java笔试面试必考的题,有时候是简答,有时候是看程序写结果。笔试中科院自动化所(Web 开发)、中搜在线(高级测试)、中国网(Java开发)、易宝支付(Java开发)都出现过。下面就自己的理解做一个详细的阐述。

 

1)接口(interface)是Java中实现多态的重要途径之一,一个接口可以被多个类实现,一个类可以实现多个接口,但只能继承一个抽象类;

2)如果在接口中增加一个抽象方法,实现这个接口的类要么实现这个方法,要么改为抽象类,否则无法编译通过;而抽象类中可以为部分方法提供默认的实现,从而避免在子类中重复实现它们,所以在抽象类中加入具体方法不会影响子类;

3)接口一般作为系统与外界交互的窗口,所以接口一旦确定不能随意更改;而抽象类一般做为系统的扩展点。

 

其实这个问题还可以引申出很多问题,面试中曾遇到过以下问题:

1)C++是如何实现多态的,虚函数和纯虚函数的作用是什么?

2)自己写一个狗咬人,猫咬人的简单程序来阐述接口是如何实现多态的?

3)看程序写结果,比如:一个类实现了一个接口,而这个接口继承了另外两个接口。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值