Java基础之接口与抽象类的区别

来源:互联网 发布:淘宝详情页视频下载 编辑:程序博客网 时间:2024/05/18 19:44

定义

抽象类:声明方法的存在而不去实现它的类叫做抽象类(abstract
class),里面可以有抽象方法和非抽象方法,另外,抽象类是不能被实例化的(抽象类不能创建对象),因为抽象类中有可能会有抽象方法,而抽象方法是没有方法体的,不可以被调用,如果想调用抽象类里面的方法,则需要创建一个子类来继承抽象类,在子类中来实现抽象类中的抽象方法。

接口:接口里面的方法全部都是抽象方法,它是抽象类的变体;由于接口中都是抽象方法,因此不能通过实例化对象的方式来调用接口中的方法,此时需要定义一个类通过implements关键字来实现接口中所有的方法;


区别

  1. 抽象类中可以有非抽象方法,接口中全都是抽象方法;
  2. 一个接口可以继承多个接口,一个类只能继承一个抽象类,还可以同时实现接口;
  3. 抽象是继承,接口是实现;
  4. 抽象类可以有具体的方法和属性,接口有抽象方法和不可变常量;

    当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口;

原创粉丝点击