首页 > 编程知识 正文

java中的接口如何声明(java接口分几种类型_细数Java接口的概念、分类及与抽象类的区别)

时间:2023-05-05 16:02:43 阅读:123824 作者:2156

Java接口(Interface )是一系列方法的声明,是几种方法特征的集合。 因为一个接口只有方法的特征而没有方法的实现,所以这些方法在不同的位置由不同的类实现,这些实现可以具有各种行为)功能。

一、接口含义:

1 .有Java接口、Java语言中存在的结构、特定的语法和结构

2 .是一个类具有的方法特征的集合,是逻辑抽象。

前者称为“Java接口”,后者称为“接口”。

Java接口本身没有实现。 由于Java接口不进行着色,只描述公共行为,因此Java接口比Java抽象类抽象。

Java接口的方法只是抽象和公开的,Java接口不能具有构造函数。 Java接口可以具有公共、静态和final属性。

二、为什么接口Java是单一继承语言? 要向现有父类的特定类添加新功能,在OCP原则下,解析会将父类添加到该父类中,或者将父类添加到该父类的父类中,然后移动到类层次结构的顶层。 因此,对特定类的可插入性设计是对整个类结构中所有类的修改。

在上述示例中,如果存在接口,则无需维护整个分层结构中的所有类。

三、界面有插胡性:

类结构中的任何类都会影响该类的所有子类,但不会影响该类的超类。 类必须实现此接口中规定的方法,其子类可以自动从此类继承这些方法。 当然,您可以选择是替换所有这些方法,还是替换一些方法。 在这种情况下,可以插入这些子类。 也可以使用此接口类型加载,以实现所有子类。

接口提供了相关性和方法调用的插入性,软件系统的规模越大,生命周期越长,接口保证了软件系统的灵活性、可扩展性和可插入性。

有了接口,Java的单继承性就有了新的扩展潜力(变向实现多继承)。 3 .类型类结构Java接口(和抽象类)通常用作类型类结构的出发点。

如果一个类已经有主要的超类型,则通过实现一个接口,该类可以有另一个次要的超类型,称为混合型。

四. Java接口分类

1、普通接口(包括方法定义) publicinterfaceactionlistener (publicabstractvoidactionperformed ) actioneventevent ); }

2、识别接口(没有方法和属性定义)识别接口是没有方法和属性的接口。 识别接口只表示实现它的类没有意义要求,而实现它的类是特定类型。

公共接口串行化{ }; 3、常量接口是指在Java接口中声明一些常量,实现该接口的类使用这些常量。

publicinterfaceappconstants { public static final data _ source _ name=' test '; publicstaticfinaluser _ name=' test '; publicstaticfinalpassword=' test '; }

五.接口特点

1、Java接口的成员变量默认为public、static、final类型,可选。 也就是说,接口的成员变量必须显示为常量(大写,单词之间用“_”分隔)

2、Java接口的方法默认都是公共的,abstract类型(可选),没有方法主体,不能实例化

3、Java接口只能包含public、static、final型成员变量和public、abstract型成员方法

4、接口没有结构方法,无法实例化

5、一个接口不能实现另一个接口,但可以继承多个其他接口

Java接口必须在类中实现抽象方法

7 .如果类实现Java接口,则该类必须实现接口中的所有抽象方法。 如果不实现,则该类必须声明为抽象类

8 .不允许创建(实例化)接口的实例,但允许定义引用实现接口的类的实例的接口类型的引用变量

9、一个类只能继承一个直接的父类,但可以实现多个接口,间接实现了多继承。

6.Java接口和Java抽象类区分面向对象设计的关键在于抽象。 抽象类和接口都在继承树的顶部。

同一点:

1 .表示系统的抽象层。 当一个系统使用继承树的类时,应该尽量将引用变量声明为继承树的高级抽象类型。 由此,两个系统之间的发送耦合提高。 2、都不能实例化。 3、均包括抽象方法。 这些抽象方法描述了系统可以提供什么服务,但不包括方法主体的区别。

1、最大的区别之一在于,Java抽象类可以提供一些方法的部分实现,但不能进行Java接口; 这是Java抽象类的唯一优点吧,但这个优点很有用。

可以将新的具体方法添加到抽象类中,所有子类都会自动获取此方法; 但是,向Java接口添加新方法时,实现该接口的所有类都将无法编译,必须手动将方法实现添加到实现该接口的所有类中。

2、抽象类的实现是

子类给出,也即该实现只能在抽象类定义的继承的等级结构中;所以抽象类作为类型定义工具的效能大打折扣。

Java接口,任何一个实现了一个Java接口所规定的方法的类都可以具有这个接口的类型,而一个类可以实现任意多个Java接口,从而这个类就有了多种类型。

以上看出:Java接口是定义混合类型的理想工具,混合类表明一个类不仅仅具有某个主类型的行为,而且具有其他的次要行为。

3、结合1、2点中抽象类和Java接口的各自优势,具精典的设计模式就出来了:

声明类型的工作仍然由Java接口承担,但是同时给出一个Java 抽象类,且实现了这个接口,而其他同属于这个抽象类型的具体类可以选择实现这个Java接口,也可以选择继承这个抽象类,也就是说在层次结构中,Java 接口在最上面,然后紧跟着抽象类,这下两个的最大优点都能发挥到极至了。这个模式就是“缺省适配模式”。

在Java语言API中用了这种模式,而且全都遵循一定的命名规范:Abstract +接口名。

七.使用接口和抽象类的总体原则:

1、用接口作为系统与外界交互的窗口站在外界使用者(另一个系统)的角度,接口向使用者承诺系统能提供哪些服务,站在系统本身的角度,接口制定系统必须实现哪些服务,接口是系统中最高层次的抽象类型.通过接口交互可以提高两个系统之间的送耦合系统A通过系统B进行交互,是指系统A访问系统B时,把引用变量声明为系统B中的接口类型,该引用变量引用系统B中接口的实现类的实例。

public interface B   {   }

public class C implements B   {   }

public class A   {  B a = new C();  }

2、Java接口本身必须非常稳定,Java接口一旦制定,就不允许随遇更加,否则对外面使用者及系统本身造成影响3、用抽象类来定制系统中的扩展点,抽象类来完成部分实现,还要一些功能通过它的子类来实现

以上这篇细数Java接口的概念、分类及与抽象类的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。