260、Java基础37 - 接口与继承【接口】 2019.11.18

62 篇文章 0 订阅
12 篇文章 0 订阅

1、接口

  • 在设计LOL的时候,进攻类英雄有两种,一种是进行物理系攻击,一种是进行魔法系攻击

  • 这时候,就可以使用接口来实现这个效果。

2、物理攻击接口

  • IDEA上创建一个接口: File -> New ->Java Class -> Interface
  • 接口命名为:AD ,声明一个方法 physicAttack 物理攻击,但是没有方法体,是一个“空”方法
  • 创建接口截图:
    在这里插入图片描述
    在这里插入图片描述
package charactor;
 
public interface AD {
        //物理伤害
    public void physicAttack();
}

3、设计一类英雄,能够使用物理攻击

  • 设计一类英雄,能够使用物理攻击,这类英雄在LOL中被叫做AD

  • 类:ADHero

  • 继承了Hero 类,所以继承了name,hp,armor等属性

  • 实现某个接口,就相当于承诺了某种约定

  • 所以,实现了AD这个接口,就必须提供AD接口中声明的方法physicAttack()
    实现在语法上使用关键字 implements

package charactor;
 
public class ADHero extends Hero implements AD{
 
    @Override
    public void physicAttack() {
        System.out.println("进行物理攻击");
    }
 
}

4、魔法攻击接口

  • 创建一个接口 File -> New -> Java Class -> Interface
  • AP ,声明一个方法 magicAttack 魔法攻击,但是没有方法体,是一个“空”方法
package charactor;
 
public interface AP {
 
    public void magicAttack();
}

5、设计一类英雄,只能使用魔法攻击

  • 设计一类英雄,只能使用魔法攻击,这类英雄在LOL中被叫做AP
  • 类:APHero
  • 继承了Hero 类,所以继承了name,hp,armor等属性
  • 同时,实现了AP这个接口,就必须提供AP接口中声明的方法magicAttack()
  • 实现在语法上使用关键字 implements
package charactor;
 
public class APHero extends Hero implements AP{
 
    @Override
    public void magicAttack() {
        System.out.println("进行魔法攻击");
    }
 
}

6、设计一类英雄,既能进行物理攻击,又能进行魔法攻击

  • 一种英雄,能够同时进行物理攻击和魔法攻击
    比如伊泽瑞尔,皮城女警凯特琳
package charactor;
  
//同时能进行物理和魔法伤害的英雄
public class ADAPHero extends Hero implements AD,AP{
  
    @Override
    public void magicAttack() {
        System.out.println("进行魔法攻击");
    }
  
    @Override
    public void physicAttack() {
        System.out.println("进行物理攻击");
    }
  
}

7、什么样的情况下该使用接口?

如上的例子,似乎要接口,不要接口,都一样的,那么接口的意义是什么呢

学习一个知识点,是由浅入深得进行的。 这里呢,只是引入了接口的概念,要真正理解接口的好处,需要更多的实践,以及在较为复杂的系统中进行大量运用之后,才能够真正理解,比如在学习了多态之后就能进一步加深理解。

刚刚接触一个概念,就希望达到炉火纯青的学习效果,这样的学习目标是不科学的。

8、练习:接口

设计一个治疗者接口:Healer

该接口声明有方法: heal()

设计一个Support类,代表辅助英雄,继承Hero类,同时实现了Healer这个接口

  • Healer.java
package charactor1;

public interface Healer {
    public void heal();
}

  • Support.java
package charactor1;

public class Support extends Hero implements Healer{

    @Override
    public void heal(){

    }
}

9、参考链接

[01]- How2j - 接口与继承系列教材 (一)- 如何设计JAVA的接口?
[02] CSDN - idea中如何创建接口

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值