【Java语法基础】7.接口

7.接口

接口的定义

所谓接口也是一个java文件,其中包含了一系列需要实现的函数,关键字:interface

如下示例:

public interface role {
    public void greet();
    public void move();
    public int getSpeed();
}

接口的继承

接口像类一样,也可以继承。**

public interface Hero extends role{
    public void attack();
}

需要在类中实现具体的接口,关键字:implements

  • 必须将接口中需要实现的函数全部实现,否则会报错

  • 可以implements多个接口。中间用逗号隔开。

示例如下:

package org.example.role.imp;
import org.example.role.Hero;

public class Zeus implements Hero{
    private final String name = "Zeus";
    public void attack()
    {
        System.out.println(name + ": Attack");
    }

    public void greet()
    {
        System.out.println(name + ": Hi");
    }

    public void move()
    {
        System.out.println(name + ": Move");
    }

    public int getSpeed()
    {
        return 10;
    }
}

接口实现多态

若两个类都实现了接口中的函数,我们可以使用接口的名称来实现多态。函数发生调用时,会自动确定是哪一个类的函数,并进行调用。

package org.example.role.imp;
import org.example.role.Hero;

public class Athena implements Hero{
    private final String name = "Athena";
    
    public void attack() {
        System.out.println(name + ": Attack");
    }

    public void greet() {
        System.out.println(name + ": Hi");
    }

    public void move() {
        System.out.println(name + ": Move");
    }

    public int getSpeed() {
        return 20;
    }
}

Main.java调用:

package org.example;
import org.example.role.Hero;
import org.example.role.imp.Athena;
import org.example.role.imp.Zeus;

public class Main {
    public static void main(String[] args)
    {
        Hero Zeus = new Zeus();
        Hero Athena = new Athena();

        Zeus.attack();
        Athena.attack();
        //输出:
        //Zeus: Attack
		//Athena: Attack
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

指针常量

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

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

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

打赏作者

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

抵扣说明:

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

余额充值