美文网首页
Java接口与抽象类的理解

Java接口与抽象类的理解

作者: BestbpF | 来源:发表于2018-07-24 22:12 被阅读12次

抽象类

当一个类中含有至少一个抽象方法时,这个类就是抽象类。(这里我们忽略那种没有抽象方法却声明为抽象类的情况)
首先讲一下抽象方法,抽象方法是一种特殊的方法,它只有声明,没有具体实现。编写规范如下所示:

abstract void play();

抽象方法必须用abstract关键字来定义,当一个类含有抽象方法时,该类为抽象类,且 必须有abstract关键词去修饰。抽象类含有没有具体实现的方法,无法实例化对象。编写规范如下所示:

[public] abstract class test {
    abstract void play();
}

抽象类中不仅可以拥有抽象方法,也可以含有成员变量和具体的成员方法。

  • 注:abstract关键字不可与static或者final连用

抽象类与普通类的区别

  • 抽象方法访问修饰符必须是public(默认)或者protected,且不能使用final去修饰,因为抽象类需要被继承并重写抽象方法。
  • 抽象类由于含有为实现的方法,故无法用来创建对象。
  • 一个类若继承了一个抽象类,该类必须实现抽象类的所有抽象方法,除非该类也为抽象类。

接口

接口英文名称为interface,泛指供他人调用的方法或者函数。Java中接口的编写规范如下:

[public] interface UserDao(){
}

接口中可以含有变量和方法,但是变量会被隐式的指为public static final,而所有方法会都会被隐式的指为public abstract,从这里可以看出,接口比抽象类更加的抽象。
接口更多的起到了一种规范的作用,Java中类只能单继承,但是可以实现多接口,编写规范如下:

public class UserDaoImpl implements UserDao,Interface1,Interface2,[...]{
}

除抽象类外,实现接口就必须实现接口内的所有方法。

抽象类与接口的区别

  1. 抽象类可以提供非抽象的普通成员方法,而接口中只能存在public abstract 方法(JAVA8新特性中支持接口实现默认方法,需要用default关键字标识);
  2. 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final;
  3. 接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
  4. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。

相关文章

  • 接口和抽象类有什么区别

    学习Java基础知识,打通面试关~十三接口与抽象类面试常客:谈谈你对抽象类和接口的理解 接口用interface修...

  • java抽象类与接口的区别是什么?

    关于java抽象类与接口的文章早已是非常多了,本文是对我个人过往学习java的经验,理解及应用抽象类与接口的一个总...

  • 深入理解Java的接口和抽象类

    深入理解Java的接口和抽象类

  • Android-知识点总结

    Java知识点 抽象类与接口的区别: 抽象类可以有方法的具体实现,接口不可以。 由于Java单继承的特性,子类只能...

  • 2021-04-07

    一、Java基础 1. 接口,继承,多肽 理解接口与抽象类的关系,百度查找设计模式中的模版方法,策略模式,单例模式...

  • Java 学习之路

    我认为的基础部分: java 基本的数据类型和循环,遍历等基础语句 java 的类与对象,还有对抽象类和接口的理解...

  • Java接口与抽象类的理解

    抽象类 当一个类中含有至少一个抽象方法时,这个类就是抽象类。(这里我们忽略那种没有抽象方法却声明为抽象类的情况)首...

  • java接口与抽象类的理解

    接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制 接口interfac...

  • JAVA

    JAVA java中接口与抽象类的区别? 简述jvm的内存布局? java对象创建的过程? java重载与重写的区...

  • 如何理解Java8中的接口和抽象类

    本文结合Java8,重新整理了接口和抽象类的区别,以及如何理解接口的设计目的。并且分析了Java8的接口新特性:d...

网友评论

      本文标题:Java接口与抽象类的理解

      本文链接:https://www.haomeiwen.com/subject/fizymftx.html