本文概述
- 为什么使用Java接口?
- 如何声明一个接口?
- Java 8的界面改进
- 内部由编译器
- Java接口示例
- Java接口的例子:可拉的
- Java接口的例子:银行
- 多重继承的Java接口
- 问)不支持多重继承类在java中,但是它是由一个接口可能,为什么?
- 接口继承
- Java 8默认方法接口
- Java 8静态方法的接口
- Q标记或标记的接口是什么?
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();
}
}
推荐阅读
- Java抽象类和接口的区别
- Java抽象类
- Java instanceof操作符
- Java静态绑定和动态绑定
- Java多态性
- Java实例初始化块
- Java final关键字
- Java协变返回类型
- Java super关键字