java语言

Java中接口和抽象类的异同

时间:2024-08-12 18:28:54 java语言 我要投稿
  • 相关推荐

Java中接口和抽象类的异同

  “抽象方法”属于一种不完整的方法,只含有一个声明,没有方法主体。本文是百分网小编搜索整理的关于Java中接口和抽象类的异同,供参考借鉴,希望对大家有所帮助!想了解更多相关信息请持续关注我们应届毕业生考试网!

  1. 抽象类:

  (1).概念:抽象类是对一种事物的抽象,即对类抽。.抽象类是对整个类整体进行抽象,包括属性、行为。Java抽象类和Java接口一样,都用来声明一个新的类型。并且作为一个类型的等级结构的起点。

  (2).格式:

  代码如下:

  public abstract class abstractDemo{

  /**属性*/

  private String name;

  /**方法*/

  public abstract void fun();

  }

  (3).说明:

  A:抽象类中不一定有抽象方法,但是有抽象方法的类一定要定义为抽象类。

  B:在Java语言中,类有两种,一种是具体类,另一种是抽象类。

  具体类可以实例化,抽象类不可以实例化。

  C:对于抽象类,如果需要添加新的方法,可以直接在抽象类中添加具体的实现,子类可以不进行变更;

  D:抽象方法只有声明,没有具体的实现。抽象类是为了继承而存在的,如果你定义了一个抽象类,却不去继承它,就等于白白的创建了这个类。

  E:对于一个父类,如果它的一个方法在父类中实现没有任何意义,必须根据子类的实际需求来进行不同的实现,那么就可以将这个方法声明为abstract方法,此时这个类也就成为了abstract抽象类。

  2. 接口:

  (1).概念:接口是对行为的抽象。接口是对类局部(行为)进行抽象。

  (2).格式:

  代码如下:

  public interface test {

  /** 抽象方法 */

  public abstract void fun();

  }

  (3).说明:

  接口中可以含有变量和方法,但是,接口中的变量会被隐式地指定为public static final。而方法会被隐式地指定为public abstract方法且只能是public abstract方法。

  3. 接口和抽象类的区别与联系:

  (1).抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。

  (2).抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。

  (3). 继承是一个 “是不是”的关系,而 接口 实现则是 “有没有”的关系。如果一个类继承了某个抽象类,则子类必定是抽象类的种类,而接口实现则是有没有、具备不具备的关系。

  (4).接口只给出方法的声明,不给出方法的实现。抽象类中可以有抽象方法的一般方法。如果是抽象方法的话,只有方法的声明。如果是一般方法的话,既有方法的声明,也有方法的实现。

  4. 使用接口的原因:

  (1).没有接口,可插入性就没有保证。因为Java是单继承的。

  (2).在一个类等级结构中的任何一个类都可以实现一个接口,如果这个类实现了这个接口那么将会影响到此类的所有子类,但是不会影响到此类的所有父类。

  (3).一个类最多有一个父类,但是可以同时实现几个接口。

  5. 问题:

  在《JAVA编程思想》一书中,将抽象类定义为“包含抽象方法的类”,但是后面发现如果一个类不包含抽象方法,只是用abstract修饰的话也是抽象类。也就是说抽象类不一定必须含有抽象方法。因为如果一个抽象类不包含任何抽象方法,为何还要设计为抽象类?

  个人理解:

  抽象类目的是用来继承的,在定义上,可以没有抽象方法,只是用abstract修饰是没有语法错误的,但是没有哦实际意义。抽象类中的抽象方法是让子类继承抽象类,来实现抽象类中的抽象方法,根据子类的需求分别来实现不同的功能。

【Java中接口和抽象类的异同】相关文章:

接口和抽象类的区别05-09

java继承抽象类07-28

介绍Java array接口10-06

Java图形用户接口09-04

Java中hashmap和hashtable的区别06-20

java中String和StringBuffer的区别08-01

java中i++和++i的区别10-26

Java中对象和引用的具体区别05-18

关于java中堆和栈的区别10-22

Java中传值调用的理解和透析09-17