Java接口

本文概述

  • 为什么使用Java接口?
  • 如何声明一个接口?
  • Java 8的界面改进
  • 内部由编译器
  • Java接口示例
  • Java接口的例子:可拉的
  • Java接口的例子:银行
  • 多重继承的Java接口
  • 问)不支持多重继承类在java中,但是它是由一个接口可能,为什么?
  • 接口继承
  • Java 8默认方法接口
  • Java 8静态方法的接口
  • Q标记或标记的接口是什么?
一个接口的java类的蓝图。静态常量和抽象方法。
Java的接口是一种机制来实现抽象。只有在Java接口,抽象方法没有方法主体。它是用于在Java中实现抽象和多重继承。
换句话说,你可以说接口可以有抽象方法和变量。它不能有方法体。
Java接口也代表着是一个关系。
抽象类不能被实例化,就像。
自Java 8日,我们可以有默认和静态方法的接口。
因为Java 9,我们可以在一个私有方法的接口。
为什么使用Java接口?主要有三个原因使用接口。下面给出。
  • 它是用来实现抽象。
  • 通过接口,我们可以支持多重继承的功能。
  • 它可以用来实现松散耦合。
如何声明一个接口?声明一个接口通过使用关键字的接口。它提供了抽象; 意味着在一个接口中声明的所有方法的空的身体,和所有的字段是公开的,静态的,最后的默认。实现一个接口的类必须实现接口中声明的所有方法。
Syntax:
interface < interface_name>{// declare constant fields // declare methods that abstract // by default. }

Java 8的界面改进因为Java 8,接口可以有默认和静态方法稍后讨论。
内部由编译器Java编译器前增加了公众和抽象的关键字接口方法。此外,它增加了公众,静态数据成员之前和最终的关键词。换句话说,界面字段是公开的,静态的,最后在默认情况下,方法是公开的和抽象的。
类和接口的关系如图下面,一个类继承另一个类,接口扩展另一个接口,但是一个类实现一个接口。
Java接口示例在这个例子中,可打印接口只有一个方法,它的实现是A6类提供的。
interface printable{ void print(); } class A6 implements printable{ public void print(){System.out.println("Hello"); }public static void main(String args[]){ A6 obj = new A6(); obj.print(); } }

输出:
Hello

Java接口的例子:可拉的在这个例子中,在绘图界面只有一个方法。它的实现是由矩形和圆类提供的。在真实的场景中,一个接口被定义为别人,但它的实现是由不同的实现供应商提供。此外,它被别人。实现部分是隐藏的用户使用界面。
File: TestInterface1.java
//Interface declaration: by first user interface Drawable{ void draw(); } //Implementation: by second user class Rectangle implements Drawable{ public void draw(){System.out.println("drawing rectangle"); } } class Circle implements Drawable{ public void draw(){System.out.println("drawing circle"); } } //Using interface: by third user class TestInterface1{ public static void main(String args[]){ Drawable d=new Circle(); //In real scenario,object is provided by method e.g. getDrawable() d.draw(); }}

输出:
drawing circle

Java接口的例子:银行【Java接口】让我们看看另一个例子的java接口提供了银行接口的实现。
File: TestInterface2.java
interface Bank{ float rateOfInterest(); } class SBI implements Bank{ public float rateOfInterest(){return 9.15f; } } class PNB implements Bank{ public float rateOfInterest(){return 9.7f; } } class TestInterface2{ public static void main(String[] args){ Bank b=new SBI(); System.out.println("ROI: "+b.rateOfInterest()); }}

输出:
ROI: 9.15

多重继承的Java接口如果一个类实现多个接口,或一个接口扩展多个接口,它被称为多重继承。
interface Printable{ void print(); } interface Showable{ void show(); } class A7 implements Printable,Showable{ public void print(){System.out.println("Hello"); } public void show(){System.out.println("Welcome"); }public static void main(String args[]){ A7 obj = new A7(); obj.print(); obj.show(); } }

Output:Hello Welcome

问)不支持多重继承类在java中,但是它是由一个接口可能,为什么?在继承章解释说,不支持多重继承的类,因为歧义。然而,它支持在一个接口的情况下,因为没有歧义。这是因为它的实现提供的实现类。例如:
interface Printable{ void print(); } interface Showable{ void print(); }class TestInterface3 implements Printable,Showable{ public void print(){System.out.println("Hello"); } public static void main(String args[]){ TestInterface3 obj = new TestInterface3(); obj.print(); } }

输出:
Hello

正如你所看到的在上面的例子中,打印和Showable接口提供了相同的方法,但其实现类TestTnterface1,所以没有歧义。
接口继承一个类实现一个接口,但一个接口扩展另一个接口。
interface Printable{ void print(); } interface Showable extends Printable{ void show(); } class TestInterface4 implements Showable{ public void print(){System.out.println("Hello"); } public void show(){System.out.println("Welcome"); }public static void main(String args[]){ TestInterface4 obj = new TestInterface4(); obj.print(); obj.show(); } }

输出:
Hello Welcome

Java 8默认方法接口自Java 8,我们可以在接口方法主体。但是我们需要让它默认的方法。让我们看一个例子:
文件:TestInterfaceDefault.java
interface Drawable{ void draw(); default void msg(){System.out.println("default method"); } } class Rectangle implements Drawable{ public void draw(){System.out.println("drawing rectangle"); } } class TestInterfaceDefault{ public static void main(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){return x*x*x; } } class Rectangle implements Drawable{ public void draw(){System.out.println("drawing rectangle"); } }class TestInterfaceStatic{ public static void main(String args[]){ Drawable d=new Rectangle(); d.draw(); System.out.println(Drawable.cube(3)); }}

输出:
drawing rectangle 27

Q标记或标记的接口是什么?一个接口,它没有成员称为标记或标记接口,例如,可序列化的,可克隆,远程等等。他们是用来提供一些基本信息JVM,以便JVM可能执行一些有用的操作。
//How Serializable interface is written? public interface Serializable{ }

在Java中嵌套接口注意:一个接口可以有另一个接口被称为一个嵌套接口。我们将学习在嵌套类一章详细介绍。例如:
interface printable{ void print(); interface MessagePrintable{ void msg(); } }

    推荐阅读