Java基础-抽象类和接口
前言 在面试题中经常会出现这样抽象类和接口比较的题目,那么什么是抽象类?什么是接口呢?还有它们有什么区别呢?在讨论以上问题之前我们先来看一下抽象类和接口的特征吧。 抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类。比如new Animal(),我们都知道这个是产生一个动物Animal对象,但是这个Animal具体长成什么样子我们并不知道,它没有一个具体动物的概念,所以他就是一个抽象类,需要一个具体的动物,如狗、猫来对它进行特定的描述,我们才知道它长成啥样。 在面向对象领域由于抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能实例化的。 实例 //创建abstract抽象类Animal public abstract class Animal { //创建抽象方法 dog public abstract void dog ( ) ; } //创建Dog类,继承Animal抽象类 public class Dog extends Animal { //重写父类Animal方法Dog(); @Override public void dog ( ) { // TODO Auto