接口

    科技2022-07-13  128

    接口–interface

    定义格式: 权限修饰符 interface 接口名{} 接口名和类名保持一致 接口中可以包含的内容: 属性–公共的静态常量–public static final 方法–"必须"是抽象方法–public abstract 接口中定义的静态常量 抽象方法 默认属性使用public static final来修饰的 默认方法使用public abstract来修饰的 JDK1.8中给接口做了改动: 接口中允许通过static/default来修饰带有方法体的非抽象方法 static修饰,则为静态方法,只能通过接口名.静态方法名方式来调用;不会被实现类继承到; default修饰,为默认的普通方法,无法通过接口来调用;实现类可以继承该方法,可以通过实现类的对象来调用方法; 使用接口: 类实现接口 要求接口中所有的抽象方法 格式: class 类名 extends 父类 implements 接口名1,接口名2,…{ //实现接口中所有的抽象方法即可 } interface implements 都是关键字 接口不能创建对象,但支持向上造型

    类中必须是一类事物共有的属性和行为

    而接口不关心这些实现类是否是同一类事物,只关注这些实现类是否需要扩展当前接口的功能; 接口:功能的扩展 模板文件

    类和接口的关系: 类和类:单继承 类和接口:多实现 接口和接口:继承,支持多继承 抽象类、接口的区别: 1、抽象类class关键 接口interface关键字 2、子类继承抽象类(extends) 实现类实现(implements)接口 3、在java中类只能单继承 实现多个接口 4、子类继承父类 子类是父类的一种 is a 实现类实现接口 实现类只是具备了接口的功能 like a 5、抽象类中可以有抽象方法 也可以包含非抽象方法 JDK1.8接口中"必须"是抽象方法 JDK 1.8之后接口中可以带方法体的方法,但是方法必须被static 或者default修饰 面向接口编程: 规范;方便团队合作开发

    内部类

    分类: 方法内部类 成员内部类 静态内部类 匿名内部类 方法内部类 位置:方法中定义的类

    可以使用默认的权限修饰符 可以使用final关键字来限制不能被继承 可以使用abstract来修饰成为抽象类 在方法内部类中可以定义 除静态属性之外的属性,除静态方法之外的方法 如果方法内部类为抽象类 则可以包含抽象方法 构造方法 构造代码块 不能包含静态代码块 总结:因为方法内部类在普通方法中,所以不能包含static修饰的内容 方法内部类可以使用外部类的属性和方法 方法内部类只能在方法中使用,类定义的后面使用 方法内部类可以正常继承父类实现接口

    成员内部类: 定义位置: 类中方法外

    修饰符: 所有权限修饰符都可以 final abstract都可以修饰成员内部类 成员内部类包含的内容: 除静态之外的属性和方法 静态常量可以定义 构造代码块 构造方法都可以 静态代码块不可以 继承父类实现接口: 可以正常继承父类实现接口 成员内部类可以正常使用外部类的属性和方法 成员内部类如何使用? 1、可以使用内部类的类型作为属性 方法形参 方法返回值等数据类型 2、也可以在外部类之外来创建内部类的对象 外部类.内部类 变量 = new 外部类().new 内部类(); 注意: 成员内部类通常会使用private来进行修饰,成员内部类就只能在外部类中使用,出了外部类都无法访问内部类;

    静态内部类: 通过static关键字修饰的内部类 位置:类中方法外

    修饰符: 所有权限修饰符都可以 final abstract都可以修饰静态内部类 静态内部类包含的内容: 属性和方法 静态常量可以定义 构造代码块 构造方法都可以 静态代码块可以 继承父类实现接口: 可以正常继承父类实现接口 静态内部类只能使用外部类的静态属性和静态方法 静态内部类如何使用? 1、可以使用内部类的类型作为属性 方法形参 方法返回值等数据类型 2、也可以在外部类之外来创建内部类的对象 外部类.内部类 变量 = new 外部类.内部类(); 注意: 通常也是将静态内部类的权限修饰符设置private

    匿名内部类 接口 抽象类不能直接创建对象 但是在代码中常常会使用接口类型 抽象类类型来定义属性 方法参数 返回值等 所以通常我们调用方法时需要创建一个接口实现类的对象或者抽象类子类的对象 接口实现类的对象或者抽象类子类的对象只使用一次,可以使用匿名内部类 格式: new 接口名/抽象类名(){ //接口中所有抽象方法的实现或者抽象类中所有抽象方法的实现 } 注意: 以上匿名内部类形式创建出来的对象实际上是接口实现类的对象或者抽象类子类的对象 特点: 匿名内部类只使用一次 再次通过匿名内部类创建对象是不同的对象

    Processed: 0.013, SQL: 8