java接口如何定义?java接口能干嘛?

阳光 2021-07-23 17:49:52 java常见问答 5667

接口在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明,接口无法被实例化,但是可以被实现,那java接口如何定义?下面来我们就来给大家讲解一下。

Java 接口的定义方式与类基本相同,不过接口定义使用的关键字是 interface,接口定义的语法格式如下:

[public] interface interface_name[extends interface1_name[, interface2_name, …]]
{
    // 接口体,其中可以包含定义常量和声明方法
[public][static][final] type constant_name = value; // 定义常量
[public][abstract] returnType method_name(parameter_list); // 声明方法
}

对以上语法的说明如下:

public 表示接口的修饰符,当没有修饰符时,则使用默认的修饰符,此时该接口的访问权限仅局限于所属的包;

interface_name 表示接口的名称。接口名应与类名采用相同的命名规则,即如果仅从语法角度来看,接口名只要是合法的标识符即可。如果要遵守 Java 可读性规范,则接口名应由多个有意义的单词连缀而成,每个单词首字母大写,单词与单词之间无需任何分隔符。

extends 表示接口的继承关系;

interface1_name 表示要继承的接口名称;

constant_name 表示变量名称,一般是 static 和 final 型的;

returnType 表示方法的返回值类型;

parameter_list 表示参数列表,在接口中的方法是没有方法体的。

注意:一个接口可以有多个直接父接口,但接口只能继承接口,不能继承类。

接口对于其声明、变量和方法都做了许多限制,这些限制作为接口的特征归纳如下:

具有 public 访问控制符的接口,允许任何类使用;没有指定 public 的接口,其访问将局限于所属的包。

方法的声明不需要其他修饰符,在接口中声明的方法,将隐式地声明为公有的(public)和抽象的(abstract)。

在 Java 接口中声明的变量其实都是常量,接口中的变量声明,将隐式地声明为 public、static 和 final,即常量,所以接口中定义的变量必须初始化。

接口没有构造方法,不能被实例化。例如:

public interface A
{
    publicA()
    {
        …} // 编译出错,接口不允许定义构造方法
}

一个接口不能够实现另一个接口,但它可以继承多个其他接口。子接口可以对父接口的方法和常量进行重写。例如:

public interface StudentInterface extends PeopleInterface
{
    // 接口 StudentInterface 继承 PeopleInterface
    int age = 25; // 常量age重写父接口中的age常量
    void getInfo(); // 方法getInfo()重写父接口中的getInfo()方法
}

例如,定义一个接口 MyInterface,并在该接口中声明常量和方法,如下:

public interface MyInterface
{ // 接口myInterface
    String name; // 不合法,变量name必须初始化
    int age = 20; // 合法,等同于 public static final int age = 20;
    void getInfo(); // 方法声明,等同于 public abstract void getInfo();
}

java接口能干嘛?

1、有利于对代码进行维护:比如你要做一个画板程序,其中里面有一个面板类,主要负责绘画功能,然后你就这样定义了这个类。可是在不久将来,你突然发现现有的类已经不能够满足需要,然后你又要重新设计这个类,更糟糕是你可能要放弃这个类,那么其他地方可能有引用他,这样修改起来很麻烦。如果你一开始定义一个接口,把绘制功能放在接口里,然后定义类时实现这个接口,然后你只要用这个接口去引用实现它的类就行了,以后要换的话只不过是引用另一个类而已,这样就达到维护、拓展的方便性。

2、保证代码的安全和严密:一个好的程序一定符合高内聚低耦合的特征,那么实现低耦合,定义接口是一个很好的方法,能够让系统的功能较好地实现,而不涉及任何具体的实现细节。这样就比较安全、严密一些,这一思想一般在软件开发中较为常见。

除了以上之外,java接口还保证了代码的简单、规范性,这使java人员开发起来更加节省时间。最后大家如果想要了解更多java初识知识,敬请关注奇Q工具网。

推荐阅读:

java中继承的好处是什么?java中继承要注意什么?

java能不能开发可视化窗口?怎么开发?

java打怪物小游戏代码怎么写?实例讲解