Java接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法,以下是java课程培训机构http://www.kmbdqn.cn/为大家搜索整理的Java接口是什么,希望能给大家带来帮助,更多专业知识请及时关注海文IT知识频道!
接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在Java中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
接口与类相似点:
一个接口可以有多个方法。
接口文件保存在.java结尾的文件中,文件名使用接口名。
接口的字节码文件保存在.class结尾的文件中。
接口相应的字节码文件必须在与包名称相匹配的目录结构中。
接口与类的区别:
接口不能用于实例化对象。
接口没有构造方法。
接口中所有的方法必须是抽象方法。
接口不能包含成员变量,除了static和final变量。
接口不是被类继承了,而是要被类实现。
接口支持多重继承。
Java语法中,接口可以继承接口,抽象类可以实现接口,抽象类可以继承实体类。
Java语法中,使用interface定义一个接口,使用class定义一个类,使用关键字abstract+class定义一个抽象类。以下分别对这3个知识点进行解析:
1、接口可以继承接口
接口可以多继承接口,例如:Interface1ExtendsInterface2,Interface3,Interface4??
代码示例为:
publicinterfaceInterface1{
publicvoidmethod1()
}
publicinterfaceInterface2extendsInterface1{
publicvoidmethod2()
}
publicinterfaceInterface3extendsInterface1,Interface2{
publicvoidmethod3()
}
2、抽象类可以实现接口
抽象类实现接口时,可以完全重写或覆盖接口中的方法,也可只重写接口中的部分方法。
代码示例为:
publicinterfaceInterfaceA{
publicvoidmethod1()
publicvoidmethod2()
publicvoidmethod3()
}
abstractclassClassAimplementsInterfaceA{
publicvoidmethod1(){}
publicvoidmethod2(){}
}
3、抽象类可以继承实体类
抽象类可以继承实体类,但前提是实体类必须有明确的构造函数。
代码示例为:
classEntityA{
publicEntityA(){
//构造函数
}
publicvoidhelloWorld(){
System.out.println("hello")
}
}
abstractclassClassAextendsEntityA{}
扩展资料:
1、Java继承或实现接口时需要遵循的原则:
(1)类优先于接口。如果一个子类继承的父类和接口有相同的方法实现。那么子类继承父类的方法。
(2)子类型中的方法优先于父类型中的方法。
(3)如果以上条件都不满足,则必须显示覆盖/实现其方法,或者声明成abstract。
2、Java实现多继承的方式:
(1)Java中一个类不能继承多个具体class。
(2)一个类只可继承自一个具体class,但可实现多个接口。interface不涉及到实现细节,不与任何存储空间有关连。新类可继承自一个具象class,其余继承都得是interfaces。
(3)outerclass不可继承自多个具体class,可在其内部设多个innerclass,每个innerclass都能各自继承某一实现类。innerclass不受限于outerclass是否已经继承自某一实现类。
(4)innerclass可以说是多重继承问题的完整解决方案。一个类不能继承自多个一般类。但我们可以让其内部的多个innerclass各自继承某一实现类达到类似的目的。
参考资料来源:Java官方文档-接口(interface)
Java接口是Java语言中存在的结构,有特定的语法和结构;
Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
接口实现和类继承的规则不同,因为Java接口不涉及表象,因此Java接口本身没有任何实现。