面试高频题
现在就在这里聊聊这个比较奇葩的问题
首先接口是对一组行为的高度抽象,
然后抽象类里面的抽象方法也是对一组行为的高度抽象,
因为他只有方法名没有方法体,他不写具体的方法实现,让自己的子类自己去实现
举个栗子
就像我们穷人家的父母告诉我们要好好赚钱做个有出息的人,
但是具体怎么实现,父母并不能告诉我们,需要我们兄弟姐妹自己好好奋斗,自己实现
不像那个非抽象类,就好比一些有钱有办法的父母,给子女把路都铺好了。子女只需要自己按照这条路走就行了
(但是我就不明白了,明明这个操作 接口就能完成,为什么还要搞个抽象类)
如果非要说具体的几点区别:
1:一个类只能继承一个抽象类,而一个类却可以实现多个接口。
2:抽象类有构造方法,接口没有构造方法
3:抽象类可以有普通成员变量,接口中没有普通成员变量
4:抽象类中可以包含非抽象的方法,接口中方法默认都是public abstract修饰的,都是抽象方法
5:抽象类中的抽象方法的修饰类型可以是public,protected,但是接口的方法的修饰类型都是public,且默认都是public abstract类型
6:抽象类中可以包含静态方法,接口中不能包含静态方法
但是这里我自己并没有很好的理解接口和抽象类的本质区别,我无法通过一个具体的实例来清晰的理解他们本质的区别
但是既然设计的有抽象类 那么肯定是有用的。。。。。。。。。。。。。。。。。。未完待续,哪天我有一个很好的例子了,我会及时修改这篇文章