java 接口类型成员变量_18.9 接口作为成员变量类型
>[info] 接口作為成員變量類型
1.創(chuàng)建一個接口
```
package cn.itcast.day11.demo07;
public interface Skill {
void use(); // 釋放技能的抽象方法
}
```
2.創(chuàng)建一個類中的成員變量的數(shù)據(jù)類型是接口名
```
package cn.itcast.day11.demo07;
public class Hero {
private String name; // 英雄的名稱
private Skill skill; // 英雄的技能
public Hero() {
}
public Hero(String name, Skill skill) {
this.name = name;
this.skill = skill;
}
public void attack() {
System.out.println("我叫" + name + ",開始施放技能:");
skill.use(); // 調(diào)用接口中的抽象方法
System.out.println("施放技能完成。");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Skill getSkill() {
return skill;
}
public void setSkill(Skill skill) {
this.skill = skill;
}
}
```
3.測試類
```
package cn.itcast.day11.demo07;
public class DemoGame {
public static void main(String[] args) {
Hero hero = new Hero();
hero.setName("艾希"); // 設(shè)置英雄的名稱
// 設(shè)置英雄技能
// hero.setSkill(new SkillImpl()); // 使用單獨定義的實現(xiàn)類
// 還可以改成使用匿名內(nèi)部類
// Skill skill = new Skill() {
// @Override
// public void use() {
// System.out.println("Pia~pia~pia~");
// }
// };
// hero.setSkill(skill);
// 進一步簡化,同時使用匿名內(nèi)部類和匿名對象
hero.setSkill(new Skill() {
@Override
public void use() {
System.out.println("Biu~Pia~Biu~Pia~");
}
});
hero.attack();
}
}
```
總結(jié)
以上是生活随笔為你收集整理的java 接口类型成员变量_18.9 接口作为成员变量类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: switch国行跟国外版有什么区别吗?
- 下一篇: angularjs与PHP,我应该混合A