4.接口和抽象类

前言:一般面试的时候都会被问到接口和抽象类的区别,所以想深入了解一下

 4.1 抽象类

        4.1.1 抽象类使用abstract修饰

        4.1.2 抽象类不能被实例化

        4.1.3 含有抽象方法的类是抽象类(被abstract修饰的方法),必须使用abstract修饰

        4.1.4 抽象类可以含有抽象方法,也可以不包含抽象方法

        4.1.5 如果一个子类实现了一个父抽象类的所有抽象方法,那么该子类就可以不必是抽象类,否则就是抽象类

        4.1.6 抽象类中的抽象方法只有方法体,没有实现

  4.2 接口

         4.2.1 接口使用interface修饰

         4.2.2 接口不能被实例化

         4.2.3 一个类只能继承一个类,但是可以实现多个接口

         4.2.4 接口内的方法都是抽象方法

         4.2.5 接口内不能含有静态方法

  4.3 区别

         4.3.1 接口可以被多个子类继承,但是抽象类只能被一个子类继承

         4.3.2 接口只定义方法,不能实现,而抽象类可以实现部分方法象方法。     

  4.4 接口和抽象类的实质

         抽象类是对对象本身的抽象,接口是对对象动作的抽象,就比如坦克游戏,抽象类指出这是一个游戏,而接口指出这个游戏的动作(射击、移动、掉血),所以接口可以被多个子类继承(一个游戏可以有多个动作),而抽象类只能一个子类继承(只能是游戏)。

原文地址:https://www.cnblogs.com/mokpiet/p/13655903.html