java中接口怎么用?java接口有什么功能?

阳光 2021-07-19 21:20:05 java常见问答 5199

在java中,接口像类一样,可以有方法和变量,但在接口中声明的方法默认是抽象的,那在实际开发中,我们要怎么使用java中接口呢?下面来我们就来给大家讲解一下。

要实现接口,我们使用关键字:implement

简单实例:

让我们考虑一个Bicylce, Bike, car等车子的例子,它们有共同的功能。所以我们建立了一个接口并把所有这些共同的功能放在一起。让Bicylce, Bike, car…等等用他们自己的方式在他们自己的类里实现所有这些特征。

import java.io.*;
interface Vehicle
{
    // 一切都是抽象的方法
    void changeGear(int a);
    void speedUp(int a);
    void applyBrakes(int a);
}
class Bicycle implements Vehicle
{
    int speed;
    int gear;
    // 换档
    @Override
    public void changeGear(int newGear)
    {
        gear = newGear;
    }
    // to increase speed
    @Override
    public void speedUp(int increment)
    {
        speed = speed + increment;
    }
    // 降低速度
    @Override
    public void applyBrakes(int decrement)
    {
        speed = speed - decrement;
    }
    public void printStates()
    {
        System.out.println("speed: " + speed +
            " gear: " + gear);
    }
}
class Bike implements Vehicle
{
    int speed;
    int gear;
    // to change gear
    @Override
    public void changeGear(int newGear)
    {
        gear = newGear;
    }
    // to increase speed
    @Override
    public void speedUp(int increment)
    {
        speed = speed + increment;
    }
    // to decrease speed
    @Override
    public void applyBrakes(int decrement)
    {
        speed = speed - decrement;
    }
    public void printStates()
    {
        System.out.println("speed: " + speed +
            " gear: " + gear);
    }
}
class GFG
{
    public static void main(String[] args)
    {
        // creating an inatance of Bicycle
        // doing some operations
        Bicycle bicycle = new Bicycle();
        bicycle.changeGear(2);
        bicycle.speedUp(3);
        bicycle.applyBrakes(1);
        System.out.println("Bicycle present state :");
        bicycle.printStates();
        // creating instance of bike.
        Bike bike = new Bike();
        bike.changeGear(1);
        bike.speedUp(4);
        bike.applyBrakes(3);
        System.out.println("Bike present state :");
        bike.printStates();
    }
}

java接口有什么功能?

在Java语言规范中,一个方法的特征仅包括方法的名字、参数的数目和类型,而不包括方法的返回类型、参数名以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。

接口实现和类继承的规则不同,为了数据的安全,继承时一个类只有一个直接父类,也就是单继承,但是一个类可以实现多个接口,接口弥补了类的不能多继承缺点,继承和接口的双重设计既保持了类的数据安全也变相实现了多继承。

Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java接口比Java抽象类更抽象化。但是接口不是类,不能使用new 运算符实例化一个接口。如 x=new comparable(......);//这个是错误来的。但是可以声明接口变量Comparable x; //这是允许的。

Java接口的方法只能是抽象的和公开的,Java接口不能有构造器,Java接口可以有public、static和final属性。即接口中的属性可以定义为 public static final int value=5; [1]

接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。

Java有了接口能够保证代码的安全和严密,并且更加有利于对代码进行维护,最后大家如果想要了解更多java初识知识,敬请关注奇Q工具网。

推荐阅读:

java如何制作小游戏?java制作小游戏代码

技术架构师选择java还是go?java和go的区别

java泛型方法怎么编写?java泛型原理是什么?