第18讲接口-创新互联

第18讲
    • 1 接口简述
    • 2 接口的特点
      • 2.1 类实现接口
      • 2.2 接口实例化
      • 2.3 接口的实现类
    • 3 接口的成员特点
      • 3.1 成员变量
      • 3.2 构造方法
      • 3.3 成员方法
    • 4 类继承和实现后创建对象的区别
      • 4.1 用父类创建对象
      • 4.2 用接口创建对象
      • 4.3 用具体类创建对象
    • 5 类和接口之间的关系
    • 6 接口新增特性
      • 6.1 默认方法
      • 6.2 静态方法
      • 6.3 私有方法

创新互联建站是一家专注于成都网站制作、成都网站设计、外贸营销网站建设与策划设计,汉台网站建设哪家好?创新互联建站做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:汉台等地区。汉台做网站价格咨询:028-869222201 接口简述

接口就是一种公共的规范标准。只要符合规范标准,都可以使用。

  • A、B、C extends D,A和B有一个共同的行为e,但C没有行为e,如果在A和B里分别定义行为e将无法限制定义的规则(方法名,参数),采用多态调用行为e时不方便。此时就可以将行为e定义为一个接口。

接口是一种规则,体现在对行为的抽象

关键字:interface

public interface 接口名 {...}
2 接口的特点 2.1 类实现接口

接口和类是实现关系,可以单实现,也可以多实现。

关键字:implements

public class 类名 implements 接口名1, 接口名2, ... {}
2.2 接口实例化

接口不能直接实例化

如何实例化?

  • 参照多态的方式,即接口多态
接口名 变量 = new 实现类名();
// 前提是:类已经实现接口
2.3 接口的实现类

想要成为接口的实现类:

  1. 要么重写接口的所有抽象方法

  2. 要么本身也是个抽象类

3 接口的成员特点 3.1 成员变量

只能是常量

因为有默认修饰符public static final//公共的静态的最终的

public interface Inter {//在接口里定义成员变量时
    int num = 10;
    //java会给加上默认修饰符public static final,如下
    public static final int num = 10;
}
3.2 构造方法

接口没有构造方法

  • 接口是对行为进行抽象,没有具体对象存在,所以构造方法没有意义
3.3 成员方法

只能是抽象方法

因为有默认修饰符public abstract//公共的抽象的

public interface Inter {//在接口里定义成员方法时
    void show();
    //java会给加上默认修饰符public abstract,如下
    public abstract void show();
}
4 类继承和实现后创建对象的区别
public abstract class Animal {public abstract void eat();
}

interface Jumpping {public abstract void jump();
}

//Cat类继承了Animal类,并实现了Jummping接口
class Cat extends Animal implements Jumpping {public abstract void eat() {System.out.println("猫吃鱼");
    }
    
    public abstract void jump() {System.out.println("猫跳的高");
    }
}
4.1 用父类创建对象

只能使用父类中的方法

Animal a = new Cat();
a.jump(); //报错,jump方法是接口中的
4.2 用接口创建对象

只能使用接口中的方法

Jumpping j = new Cat();
j.eat(); //报错,eat方法是Animal中的
4.3 用具体类创建对象

可以同时使用父类和接口中的方法

Cat c = new Cat();
c.jump();
c.eat();
5 类和接口之间的关系
关系关系说明
类和类继承只能单继承,不能多继承,但是可以多层继承
类和接口实现可以单实现、多实现,也可以继承一个类的同时实现多个接口
接口和接口继承可以单继承,也可以多继承

其他说明:

  1. 多个接口有同名抽象方法,实现类只需要重写一个
  2. 实现有继承体系的接口,需要重写子接口及其父接口里的全部抽象方法
6 接口新增特性 6.1 默认方法

JDK8以后接口中新增的方法,

作用: 解决接口升级后不兼容的问题

  • 如刚开始接口A中只定义了抽象方法b,之后想添加新的方法c。如果是将c写成抽象方法,那实现接口A的所有抽象类都要强制重写方法c。但如果将方法c定义为默认方法,实现类就可以选择性地重写。

关键字:default

public default 返回值类型 方法名(参数) {...}

注意:

  1. 默认方法不强制被重写,但如果要重写,重写时需要去掉关键字default
  2. 如果实现的多个接口中存在相同名字的默认方法,子类就必须对该默认方法进行重写
  3. public是默认修饰符可以省,default不能省
6.2 静态方法

JDK8以后接口中新增的方法

关键字:static

public static 返回值类型 方法名(参数) {...}

注意:

  1. 静态方法不能被重写
  2. 静态方法只能通过接口名调用,不能通过实现类名和对象名调用。
  3. public是默认修饰符可以省,static不能省
6.3 私有方法

JDK9以后接口中新增的方法

作用: 将只为接口服务的方法设置为私有,不让外类访问

  • 如在接口中的某些方法里有很多重复代码,就可以将这些重复代码单独定义为一个方法a。外类如果访问方法a,是没有任何意义的。所以可以将方法a定义为私有。

为默认方法服务的私有方法:

private 返回值类型 方法名(参数) {...}

为静态方法服务的私有方法:

private static 返回值类型 方法名(参数) {...}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章名称:第18讲接口-创新互联
文章转载:http://pwwzsj.com/article/jgspp.html