接口
- 概念
接口,是java所提供的另一种重要技术,它可视为一种特殊的类,其结构和抽象类相似,是抽象类的一种变体。接口中所有成员,其访问值类型都必须为public。
Intrface 接口名{ //方法体 所有方法都是公共抽象方法。 }
一个类可以实现多个接口
- 组成元素
- 接口名通过interface关键字修饰。
- 接口中有数据成员(数据成员一定要赋初值,并且此值不能再更改。)【系统默认把“public static final”三个关键字加到变量前】
- 接口中还有方法,但方法只能为“抽象方法”和default方法。
- 接口的原则
- 接口必须有子类,子类依靠implements关键字可以同时实现多个接口。
- 接口的子类(如果不是抽象类)必须实现接口之中的全部抽象方法,才能实例化对象。
- 利用子类实现对象的实例化,接口可以实现多态性。
- 优点
- 一个子类可以“实现”多个接口,实际上,这是“间接”实现多继承的一种机制。
- 接口在处理要实现的方法功能不是当前类族的必要属性和要为不同类族的多个类实现同样的方法功能等问题时,更加便捷。
内部类
把一个类放到另一个类内部定义就是内部类
static 修饰的内部类被称为静态内部类
非static修饰的内部类成为非静态内部类
-
抽象类与接口的对比
-
-
相同点
-
代表系统的抽象层
都不能被实例化
都能包含抽象方法
用于描述系统提供的服务,不必提供具体实现
-
-
不同点
-
在抽象类中可以为部分方法提供默认实现,而接口中只能包含抽象方法
抽象类便于复用,接口便于代码维护
一个类只能继承一个直接的父类,但可以实现多个接口