011Java 接口 抽象类 详解

1,217 阅读2分钟

interface 接口

接口是一种约定的标准。 屏蔽软件的复杂性和硬件的简单性之间的差异,为软件提供统一的标准。

==面向接口编程:可以降低代码间的耦合性,提高代码的可扩展性和维护性。==

接口的特点:

  • ==接口中只有常量== 在这里插入图片描述

  • 接口是一个完全抽象的类。只有方法定义,没有方法实现。

  • 提供两种访问修饰符 1:public 项目可见 2:default(缺省值) 包可见

  • 使用 关键字 implement 实现接口,可以实现多个接口。(Java 是单继承的)

  • 接口不能实例化,即不能使用new关键字。故==没有构造函数,否则编译报错==

  • ==实现接口,必须实现接口所有的抽象方法。否则,只能定义为抽象类。==

  • 使用implement实现接口

abstract 抽象类

抽象类的抽象能力弱于接口。

抽象类的特点:

  • abstract 修饰方法为抽象方法。 抽象方法,只有方法定义,没有方法实现。
  • 类中存在抽象方法,该类必须是抽象类。
  • 抽象类不一定只有抽象方法。抽象类可以由具体的方法。
  • ==抽象类中可以定义 构造方法、抽象方法、普通属性和方法、静态属性和方法。==
  • 不能实例化,实例化只能实例化具体的类。
  • 使用extends 继承 抽象类
public abstract class Color {
}
public class Apple extends Color {
    private int num;
}

在这里插入图片描述

interface 和 abstract 的区别

相同:

  • 都可以被implement实现
  • 都不能被实例化
  • 都有抽象方法

不同:

  • 接口中只有常量
  • 接口只有抽象类,没有构造函数
  • 抽象类可以由抽象方法,也可以存在其他方法
  • 实现接口,需要实现接口中的所有方法
  • 继承抽象类,需要实现抽象类中的所有抽象方法。