标签:编译 需要 关系 instance static 静态 lambda 相同 增加
2020-05-23 11:52:30
1.接口技术,主要用来描述类具有什么功能,而并不给出每个功能的具体实现,一个类可以实现一个或多个接口,并在需要接口的地方,随时使用实现了相应接口的对象
2.如果类遵从某个特定的接口,那么就履行这项服务
3.接口中所有的方法自动的属于public,因此,在接口中声明方法时,不必提供关键字public,但是,在实现接口的时,必须把方法声明为public,否则,编译器将认为这个方法的访问属性使类的默认访问属性
4.接口绝不能含有实例域,在接口中,可以定义一些常量,在javaSE8之前,也不能在接口中实现方法,现在可以实现在接口中提供简单方法了,当然,这些方法不能引用实例域----接口没有实例域
5.为什么一定要使用实现接口的方式来提供一些方法?原因,Java语言是一种强类型语言,在调用方法的时候,编译器会检查这个方法是否存在,为此,如果对象所在的类实现相关接口,就可以确保方法的存在
6.接口不是类,不能使用new运算符实例化一个接口;尽管不能构造接口的对象,但是可以声明接口的变量,接口变量必须引用实现了接口的类的对象
7.可以使用instanceOf()检查一个对象是否实现了某个特定的接口
8.接口可以建立继承关系,也可以被扩展
9.接口不能包含实例域或静态方法,但是可以包含常量;与接口中的方法都自动的设置为public一样,接口中的域将自动的设为public static final
10.任何实现类接口的类将自动继承接口内的常量,并可以在方法中使用
11.为什么已经存在抽象类的概念,还要引入接口?
每个类只能扩展于一个类,不能够扩展多个类;但是可以实现多个接口
12.在JAVA SE8中,允许在接口中增加静态方法;可以为接口方法提供一个默认实现,必须用default修饰符标记这样一个方法,当然,没有太大用处,应为每一个实现接口的方法都会覆盖这个实现
13.默认方法的一个重要用法是接口演化
14.如果先在一个接口中将一个方法定义为默认方法,然后又在超类中或者另一个接口中定义类同样的方法,Java有两个规则来解决这样的二义性
超类优先,如果超类提供了一个具体的方法,同名且有相同参数类型的默认方法会被忽略
接口冲突;如果一个接口提供了一个默认的方法,另一个接口提供了同名且有相同参数类型的默认方法,必须用覆盖这个方法的方式来解决
15.回调是一种常见的程序设计模式,在这种模式中,可以指出某个特定事件发生时应该采取的动作
标签:编译 需要 关系 instance static 静态 lambda 相同 增加
原文地址:https://www.cnblogs.com/gb12138/p/12941874.html