java关键字interfaceof_Java Interface关键字

Java Interface关键字

Java中的

Interface是类的蓝图。它具有静态常量和抽象方法。

Java中的接口是实现

抽象 的一种机制。 Java接口中只能有抽象方法,而方法主体则不能。它用于实现抽象和Java中的继承。

换句话说,可以说接口可以具有抽象方法和变量。它不能具有方法主体。

Java接口也

表示IS-A关系。

它不能像抽象类一样实例化。

自Java 8,我们可以在接口中具有

默认和静态方法。

自Java 9开始,我们可以在接口中具有

私有方法。

为什么使用Java接口?

使用接口的主要原因主要有三个。它们在下面给出。

它用于实现抽象。

通过接口,我们可以支持多重继承的功能。

可用于实现松散耦合。

bc609549bcf26ba041ae026d07c39bb3.png

如何声明接口?

使用interface关键字声明接口。它提供了全面的抽象;表示接口中的所有方法都用空主体声明,并且默认情况下所有字段均为public,static和final。实现接口的类必须实现接口中声明的所有方法。

语法:

interface <

interface_name>

{

// declare constant fields

// declare methods that abstract

// by default.}

Java8 Interface改进

由于Java 8,接口可以具有默认方法和静态方法,下面将对此进行讨论

编译器内部加法

注意: Java编译器在接口方法之前添加了公共关键字和抽象关键字。而且,它在数据成员之前添加了public,static和final关键字。

换句话说,默认情况下,Interface字段是public,static和final,方法是public和abstract。

fc56b7adaceabda133447d589d093f47.png

类与接口之间的关系

如下图所示,一个类扩展了另一个类,一个接口扩展了另一个接口,但是一个

类实现接口。

16700f420591786d9c83d3ed71767fb0.png

Java接口示例

在此示例中,Printable接口只有一个方法,并且提供了其实现在A6类中。

interface printable{

void print();

}

class A6implementsprintable{

publicvoidprint(){

System.out.println("Hello");

}

publicstaticvoidmain(String args[]){

A6 obj =newA6();

obj.print();

}

}

输出:

Hello

Java接口示例: Drawable

在此示例中,Drawable接口只有一个方法。它的实现由Rectangle和Circle类提供。在实际情况下,接口是由其他人定义的,但是其实现是由不同的实现提供程序提供的。而且,它被其他人使用。使用该接口的用户将实现部分隐藏。

文件: TestInterface1.java

//Interface declaration: by first userinterface Drawable{

void draw();

}

//Implementation: by second userclass RectangleimplementsDrawable{

publicvoiddraw(){

System.out.println("drawing rectangle");

}

}

class CircleimplementsDrawable{

publicvoiddraw(){

System.out.println("drawing circle");

}

}

//Using interface: by third userclass TestInterface1{

publicstaticvoidmain(String args[]){

Drawable d=new Circle();

//In real scenario, object is provided by method e.g. getDrawable()d.draw();

}

}

输出:

drawing circle

Java接口示例: 银行

让我们看一下另一个提供Bank接口实现的Java接口示例。

文件: TestInterface2.java

interface Bank{

float rateOfInterest();

}

class SBIimplementsBank{

publicfloat rateOfInterest(){

return9.15f;

}

}

class PNBimplementsBank{

publicfloat rateOfInterest(){

return9.7f;

}

}

class TestInterface2{

publicstaticvoidmain(String[] args){

Bank b=new SBI();

System.out.println("ROI: "+b.rateOfInterest());

}

}

输出:

ROI: 9.15

Java在接口中的多重继承

如果一个类实现了多个接口,或者一个接口扩展了多个接口,它被称为多重继承。

1343239e0a21fab0740521e5727b96aa.png

interface Printable{

void print();

}

interface Showable{

void show();

}

class A7implementsPrintable,Showable{

publicvoidprint(){

System.out.println("Hello");

}

publicvoidshow(){

System.out.println("Welcome");

}

publicstaticvoidmain(String args[]){

A7 obj =newA7();

obj.print();

obj.show();

}

}

Output:Hello

Welcome

Q)Java中的类不支持多重继承,但是接口可以实现多重继承,为什么?

正如我们在继承一章中所解释的,由于模棱两可,在class中不支持多重继承。但是,由于没有歧义,因此在接口的情况下受支持。这是因为其实现是由实现类提供的。例如:

interface Printable{

void print();

}

interface Showable{

void print();

}

class TestInterface3implementsPrintable, Showable{

publicvoidprint(){

System.out.println("Hello");

}

publicstaticvoidmain(String args[]){

TestInterface3 obj =newTestInterface3();

obj.print();

}

}

输出:

Hello

如上例所示,Printable和Showable接口具有相同的方法,但是其实现由TestTnterface1类提供,因此没有歧义。

接口继承

一个类实现了一个接口,但是一个接口扩展了另一个接口。

interface Printable{

void print();

}

interface ShowableextendsPrintable{

void show();

}

class TestInterface4implementsShowable{

publicvoidprint(){

System.out.println("Hello");

}

publicvoidshow(){

System.out.println("Welcome");

}

publicstaticvoidmain(String args[]){

TestInterface4 obj =newTestInterface4();

obj.print();

obj.show();

}

}

输出:

Hello

Welcome

接口中的Java 8默认方法

由于Java 8,我们可以在接口中使用方法主体。但是我们需要将其设为默认方法。让我们看一个例子:

文件: TestInterfaceDefault.java

interface Drawable{

void draw();

defaultvoidmsg(){

System.out.println("defaultmethod");

}

}

class RectangleimplementsDrawable{

publicvoiddraw(){

System.out.println("drawing rectangle");

}

}

class TestInterfaceDefault{

publicstaticvoidmain(String args[]){

Drawable d=new Rectangle();

d.draw();

d.msg();

}

}

输出:

drawing rectangle

default method

接口中的Java 8静态方法

由于Java 8,我们可以在接口中使用静态方法。让我们看一个例子:

文件: TestInterfaceStatic.java

interface Drawable{

void draw();

static int cube(int x){

returnx*x*x;

}

}

class RectangleimplementsDrawable{

publicvoiddraw(){

System.out.println("drawing rectangle");

}

}

class TestInterfaceStatic{

publicstaticvoidmain(String args[]){

Drawable d=new Rectangle();

d.draw();

System.out.println(Drawable.cube(3));

}

}

输出:

drawing rectangle

27

Q)什么是标记或标记接口?

没有成员的接口称为标记或标记的接口,例如可序列化,可克隆,远程等。它们用于向JVM提供一些基本信息,以便JVM可以执行一些有用的操作。操作。

//How Serializableinterfaceis written?publicinterface Serializable{

}

Java中的嵌套接口

注意: 一个接口可以具有另一个称为嵌套接口的接口。我们将在嵌套类一章中详细学习它。例如:

interface printable{

void print();

interface MessagePrintable{

void msg();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值