加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java中的接口

发布时间:2020-12-15 04:11:30 所属栏目:Java 来源:网络整理
导读:代码1: public class User1 implements MyInterface{ @Override public void doCalculation() { }}public class User2 implements MyInterface{ @Override public void doCalculation() { }}interface MyInterface{ public void doCalculation();} 代码2:
代码1:

public class User1 implements MyInterface
{
    @Override
    public void doCalculation() { }
}

public class User2 implements MyInterface
{
    @Override
    public void doCalculation() { }
}

interface MyInterface
{
    public void doCalculation();
}

代码2:

public class User1
{
    public void doCalculation() { }
}

public class User2
{
    public void doCalculation() { }
}

在我的代码1中,我有一个MyInterface,它有一个空方法doCalculation().
那个doCalculation()由user1和user2通过实现MyInterface来使用.

在我的代码2中,我有两个不同的类,定义了doCalculation()方法.

在code1和code2两种情况下,我自己都要编写实现.我的方法doCalculation()只是一个空方法.

那么MyInterface在这里有什么用?

>它只提供方法名称或骨架(是界面的唯一优势)?
>或者在使用MyInterface时我会保存任何内存吗?
>是吗,它只为实现它的类提供了空方法,那么我为什么不自己定义它,就像我在code2中所做的那样.
>不仅如此,使用界面还有更多优势.

解决方法

接口使用很多,因为它们基本上是您的类应该能够做的事情的蓝图.

例如,如果您正在编写带有字符的视频游戏,则可以使用一个界面来保存角色应具有的所有方法.

例如

public interface Character {
    public void doAction();
}

你有2个角色,例如盟友和敌人.

public class Ally implements Character {
    public void doAction() {
        System.out.println("Defend");
    }
}

public class Enemy implements Character {
    public void doAction() {
        System.out.println("Attack");
    }
}

如您所见,这两个类都实现了接口,但它们具有不同的操作.
现在,您可以创建一个实现您的界面并让它执行其操作的角色.根据它是敌人还是盟友,它会执行不同的动作.

public Character ally = new Ally();
public Character enemy = new Enemy();

在您的主程序中,您可以创建一个方法来接受实现您的接口的任何对象,并让它执行它的操作而不知道它是什么类型的字符.

void characterDoAction(Character char) {
    char.doAction();
}

如果您愿意为此方法提供联盟,那么输出将为:

Defend

如果你给这个方法的敌人,输出将是:

Attack

我希望这是一个足够好的例子来帮助您了解使用接口的好处.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读