面试中经常会问到这个问题,那么我们到底应该怎么回答呢?
语法方面
首先,在java语言中,抽象类和接口在语法方面就是有一些区别的,总结整理如下:
相同点
都是位于较上层的抽象层.
都不能被实例化....细想一下,门是一个实体,门的抽象类里面应该有报警功能吗?...(alarmable是我自己写的,我不知道有没有这个单词,大家懂就好).
定义了一个门的抽象类,所有的门都必须有这两个方法.(不能开关的叫什么门啊!)...面试中如何回答我不敢给出正确答案,但是我认为,代码是写给人看的,所以你需要正确的设计以及正确的命名,来让代码的阅读者一看便懂,而不是深陷与语法,毕竟语法可以被创造.否则,我们需要抽象类和接口的区别干什么...另外,在java8中,Oracle已经开始尝试向接口中引入默认方法和静态方法,以此来减少抽象类和接口在语法上的差异。