问题描述
抽象有什么好处?接口有什么好处!
解决方案
抽象类和接口的区别:(完全可以百度能找到答案的)1.修饰的关键字不同 抽象类修饰关键字 abstract 接口是 interface2 抽象类除了有抽象方法还可以有普通方法 而接口除了抽象方法 不能有普通方法3.抽象类对于其他类只能单一继承 而接口 一个人类可以实现多个接口 说白了接口就是java中来处理c中的多继承问题而设计的4 接口能继承 抽象类能实现接口 2者各有各的好处 都是能解决一类问题而已!
解决方案二:
看不下去了,十年前的问题,十年前的回答。接口现在已经可以写可实现的方法了,只是比较特殊接口一共两个目的,第一,和抽象类一样的作用,第二,弥补java作为面向对象语言不可传递函数的缺陷。抽象类本质上和非抽象类一样,只是抽象类从设计上能让程序员的代码更严谨。
解决方案三:
抽象类和接口某种程度上是挺像的,你可以理解为全部的抽象类就基本上等于接口了。抽象类一般是用于需要提取共同的行为放在父类,然后有一些行为是不能定的就做为抽象方法留给子类实现,子类继续抽象类以后,就自动有了父类已定义的方法的能力,但是抽象类有一个局限性,那就是不能多重继承。接口是可以理解为完全没有实现的抽象类,它适合定义某些能力,如果实现了这个接口,那就意味着拥有了这个能力,接口有个好处就是,一个类可以实现多个接口,也就是一个类可以有多种能力,接口比抽象类好的地方还有,那就是当一个类继承自抽象类,他无条件,也就是不能拒绝抽象类的所有公共方法,它都无条件的继承下来了,这在有些时候并不是我们想希望的样子。拿线程举个例子,要起一个线程,可以继承自Thread类,也可以实现Runnable接口,然后用Thread启动它,推荐的做法是实现Runnable接口,而不是继承自Thread类,原因如下:1. 如果继承自Thread类了,那么你就不能再继承其他的类了。2. 如果实现的是Runnable接口,那么你的类还可以继承别的类的自由。没有有谁更适合,具体使用还是要看场合