栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

interface(接口)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

interface(接口)

interface(接口) 一、Java接口是什么

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
接口,在Java编程语言中是一个抽象类型,它被用来要求类(Class)必须实现指定的方法,使不同类的对象可以利用相同的界面进行沟通。接口通常以interface来宣告,它仅能包含方法签名以及常数宣告(变量宣告包含了 static 及 final),一个接口不会包含方法的实现(仅有定义)。

接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须宣告为抽象类。另外,在Java中,接口类型可用来宣告一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

其中一个使用接口的优势是,可以利用他们模拟多重继承,类在JAVA中不允许多重继承,所有在Java中的类必须而且仅能有一个父类,而java.lang.Object是唯一一个例外。

Java的类可以被实现许多个接口,然而一个接口则无法实现其他的接口。

二、接口的定义
用 interface 来定义。

接口中的所有成员变量都默认是由public static final修饰的。

接口中的所有方法都默认是由public abstract修饰的。

接口没有构造方法,构造方法用于创建对象

实现接口的类中必须提供接口中所有方法的具体实现内容。

多个无关的类可以实现同一个接口

一个类可以实现多个无关的接口

与继承关系类似,接口与实现类之间存在多态性

接口也可以继承另一个接口,使用extends关键字。

实现接口的类中必须提供接口中所有方法的具体实现内容。

多个无关的类可以实现同一个接口

一个类可以实现多个无关的接口

与继承关系类似,接口与实现类之间存在多态性
一个类即存在继承关系又存在实现关系,继承在前,实现在后。
Java中的类是单继承的,Java中的接口是多继承的。
接口格式:interface 接口名{}
实现类格式:class 实现类名 implements 接口名{}
作用:用于定义方法,所以只包含抽象方法。
特点:不可实例化,只有抽象方法、常量。

接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。

三、抽象类与接口的区别

1.抽象类可以有构造方法,接口中不能有构造方法。

2.抽象类中可以有普通成员变量,接口中没有普通成员变量

3.抽象类中可以包含非抽象的普通方法,接口中的可以有非抽象方法,比如default方法

4.抽象类中的抽象方法的访问类型可以是public,protected,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。

5.抽象类中可以包含静态方法,接口中不能包含静态方法

6.抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。

7.一个类可以实现多个接口,但只能继承一个抽象类。


示例:

package com.myJava.monster;

//实现了接口的继承,和多继承的例子
public class TestInterface {
    public static void main(String[] args){
        monster monster1 = new monster();
        monster1.live();
        monster1.work();
        monster1.run();
    }
}

interface Person {
    public static final int age =10;
    public abstract void live();
}

interface Man extends Person {
    public static final int length=180;
    public abstract void work();
}

interface Women extends Person {
    public static final int weight = 55;
    public abstract void run();
}

class monster implements Man,Women {
    public String name;
    @Override
    public void live() {
        System.out.println("吃喝拉撒");
    }

    @Override
    public void work() {
        System.out.println("干干干");
    }

    @Override
    public void run() {
        System.out.println("跑步减肥");
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/851794.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号