Java 接口 抽象类
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实现
- 都不能被实例化
- 都有抽象方法
不同:
- 接口中只有常量
- 接口只有抽象类,没有构造函数
- 抽象类可以由抽象方法,也可以存在其他方法
- 实现接口,需要实现接口中的所有方法
- 继承抽象类,需要实现抽象类中的所有抽象方法。