JAVA接口类-interface

目录

引言

一,接口类的语法结构和定义

二,接口的特点

三,接口实现类implements

四,接口类使用实例


引言

        Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。为了克服Java单继承的缺点,Java使用了接口,一个类可以实现多个接口。

一,接口类的语法结构和定义

[修饰符列表] interface 接口名{

        java语句

}

接口声明使用interface关键字 interface Api{}

java 1.7 之前的接口规则:接口 = 常量 + 抽象方法

java 1.8 接口新定义规则:接口 = 常量(多个) + 抽象方法(多个) + default实现方法(多个) + static实现方法(多个)

java 1.8 接口函数式接口规则: 接口 = 常量 + default实现方法 + static实现方法 + 抽象方法(有且 只有一个抽象方法)

二,接口的特点

  • 用 interface 来定义。
  • 接口也是一种引用数据类型
  • 接口中的所有成员变量都默认是由public static final修饰的。
  • 接口中的所有方法都默认是由public abstract修饰的。
  • 接口没有构造方法。构造方法用于创建对象
  • 实现接口的类中必须提供接口中所有方法的具体实现内容。
  • 多个无关的类可以实现同一个接口
  • 一个类可以实现多个无关的接口
  • 与继承关系类似,接口与实现类之间存在多态性
  • 接口也可以继承另一个接口,使用extends关键字。
  • 实现接口的类中必须提供接口中所有方法的具体实现内容。
  • 多个无关的类可以实现同一个接口
  • 一个类可以实现多个无关的接口
  • 与继承关系类似,接口与实现类之间存在多态性

三,接口实现类implements

        为了克服Java单继承的缺点,Java使用了接口,一个类可以实现多个接口。在java语言中,接口由类通过关键字implements来实现,以便使用接口中的方法。实现多个接口用逗号隔开。

  • 实现类是针对接口来讲的。
  • 实现类就是来实现接口中约定的内容。(通过重写方法)
  • 实现通过关键字implements来实现的。

示例如下:

编写一个接口:

public interface Animal {
    public String name();
     public String acion();
     public int pf(int i);
}

编写一个实现类

public class Absract1 implements Animal {
    @Override
    public int pf(int i) {
        return i*i;
    }

    @Override
    public String name() {
        return "我的名字叫";
    }

    @Override
    public String acion() {
        return "我擅长";
    }
}

编写一个测试类如下:

public class AnimalTest {
    public static void main(String[] args) {
        Absract1 an=new Absract1();
        System.out.println(an.pf(5));
        System.out.println(an.name());
        System.out.println(an.acion());
    }
}

输出结果如下:

四,接口类使用实例

接口使用的过程为:

1,声明接口类,在接口类内编写常量,方法等

2,声明实现接口类(implements),实现接口,重写接口类的方法

3,声明测试类,在测试类内实例化实现类,调用实现类内的方法

public class InterfaceTest {
    public static void main(String[] args) {
        // 全局变量可以直接调用
        System.out.println(Flyable.MAX_SPEED);

        // 实例化实现类Plane
        Plane plane = new Plane();
        plane.fly();
        plane.stop();

        // 实例化实现类Bullt
        Bullet bullet = new Bullet();
        bullet.fly();
        bullet.stop();
        bullet.att();
    }
}

// 飞接口
interface Flyable{

    // 全局常量
    public static final int MAX_SPEED = 7900;
    int MIN_SPEED = 1;

    // 抽象方法
    public abstract void fly();
    void stop();

}

// 攻击性接口
interface Attackable{

    // 抽象方法
    public abstract void att();

}


/**
 * 飞机实现类
 */
class Plane implements Flyable{
    @Override
    public void fly(){
        System.out.println("使用引擎起飞");
    }

    @Override
    public void stop(){
        System.out.println("驾驶员减速降落");
    }
}


/**
 * 风筝实现类
 */
class Kite implements Flyable{
    @Override
    public void fly(){
        System.out.println("乘风而飞");
    }

    @Override
    public void stop(){
        System.out.println("收线降落");
    }
}


/**
 * 子弹实现类
 */

 class Bullet implements Flyable,Attackable{
    @Override
    public void fly(){
        System.out.println("biubiubiu");
    }

    @Override
    public void stop(){
        System.out.println("papapa");
    }

    @Override
    public void att(){
        System.out.println("攻击性");
    }
 }

// 接口的多继承

interface A extends Flyable,Attackable{

}

参考:(13条消息) Java语言基础-接口与实现类_寒 暄的博客-CSDN博客

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰冰很社恐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值