================
抽象
================
抽象的概念
抽象的意义
- 抽象类不能被直接实例化,只有他的非抽象子类才可以被实例化。
- 抽象类中不一定有抽象方法,抽象方法一定在抽象类中。
- 抽象方法只有方法头,没有方法体。
- 构造方法和类方法(static修饰的方法)不能声明为抽象方法
- 抽象类的子类必须给出抽象类的所有方法的具体实现,除非子类也是抽象类。
- abstract不能和private/static/final一起使用。
===============规定实现方法的统一接口
接口
===============
接口的概念
接口的概念
在使用接口过程中的注意点:一个全部由抽象方法组成的,用implements修饰的,方法和变量的集合,叫做接口。
- 一个类可以实现多个接口,实现接口的类,必须重写接口中所有成员方法。
- 接口中的变量,都是最终的静态变量。(final,static)
- 接口没有构造函数,不能创建实例,没有提供方法的实现。
- 接口不是类,可能有点绝对,但至少可以说是不是class衍生出来的类。
================
抽象类和接口的区别
================
- 接口用interface来定义的,抽象类是class;
- 接口中的方法都是抽象方法,抽象类中的方法不一定,可以有,也可以没有;
- 接口采用多重继承机制,抽象类采用单一的继承机制;
- 抽象类表示的是一种继承关系,接口表示的是功能,二者在问题域的理解上。