Java-接口
接口
接口:比抽象类还要抽象得彻底的“抽象类”(DK8以后新增了静态方法和默认方法(default修饰的方法))
- 接口中常量定义时,可以不写public static final,缺省有。接口中方法定义时,可以不写public abstract,缺省有。接口只定义不变的内容(常量和抽象方法)。
- 一个类可以实现多个接口(implements),接口不能new一个对象,但是可用于声明引用变量类型。接口可以继承另一个接口(extends),而且支持多继承。一个类实现一个接口,必须实现之中所有方法,并且方法只能是public的。
接口的实现
声明接口
1 | [public] interface 接口[extends 父接口列表] |
接口不能被实例化!
举个栗子:
1 | public interface Area //可计算面积接口 |
声明实现接口的类
[修饰符] class 类<泛型> [extends 父类] [implements 接口列表]
例子:
1 | public abstract class ClosedFigure extends Figure implements Area, Perimeter |
实现接口的非抽象类必须实现所有接口中的所有抽象方法,否则声明为抽象类
接口多继承
接口是引用数据类型
1 | ClosedFigure fig = new Ellipse(point,10,20);//父类对象fig引用椭圆子类实例 |
接口与抽象类的区别
内部类和内部接口
概念
声明在其他类或接口内部的内嵌类型。
1 | public class Pixel //像素类,外层类型,外部类{ |
1 | Pixel.Color color = new Pixel.Color(255,255,255); |
在实例内部类中,使用以下格式引用或调用外部类当前实例的成员变量或实例成员方法:
外部类.this.成员变量//引用外部类当前实例的成员变量
外部类.this.实例成员方法(参数列表)//调用外部类当前实例的成员方法
匿名内部类
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment