| 
			
	
	
	
						  
						
						
						
	
 
	本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
	 
			 
	8分47秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器 步骤 1 : 物理攻击接口 步骤 2 : 设计一类英雄,能够使用物理攻击 步骤 3 : 魔法攻击接口 步骤 4 : 设计一类英雄,只能使用魔法攻击 步骤 5 : 设计一类英雄,既能进行物理攻击,又能进行魔法攻击 步骤 6 : 什么样的情况下该使用接口? 步骤 7 : 练习-接口 步骤 8 : 答案-接口 
					创建一个接口 File->New->Interface
 
					
				AD ,声明一个方法 physicAttack 物理攻击,但是没有方法体,是一个“空”方法 package charactor;
public interface AD {
        //物理伤害
	public void physicAttack();
}
 
									
								package charactor;
public interface AD {
        //物理伤害
	public void physicAttack();
}
								
								
					设计一类英雄,能够使用物理攻击,这类英雄在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("进行物理攻击");
	}
}
 
									
								package charactor;
public class ADHero extends Hero implements AD{
	@Override
	public void physicAttack() {
		System.out.println("进行物理攻击");
	}
}
								
								
					创建一个接口 File->New->Interface
 
					
				AP ,声明一个方法 magicAttack 魔法攻击,但是没有方法体,是一个“空”方法 package charactor;
public interface AP {
	public void magicAttack();
}
 
									
								package charactor;
public interface AP {
	public void magicAttack();
}
								
								
					设计一类英雄,只能使用魔法攻击,这类英雄在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("进行魔法攻击");
	}
}
 
									
								package charactor;
public class APHero extends Hero implements AP{
	@Override
	public void magicAttack() {
		System.out.println("进行魔法攻击");
	}
}
								
								
					一种英雄,能够同时进行物理攻击和魔法攻击
 
					
				比如伊泽瑞尔,皮城女警凯特琳 package charactor;
 
//同时能进行物理和魔法伤害的英雄
public class ADAPHero extends Hero implements AD,AP{
 
    @Override
    public void magicAttack() {
        System.out.println("进行魔法攻击");
    }
 
    @Override
    public void physicAttack() {
        System.out.println("进行物理攻击");
    }
 
}
 
									
								package charactor;
 
//同时能进行物理和魔法伤害的英雄
public class ADAPHero extends Hero implements AD,AP{
 
    @Override
    public void magicAttack() {
        System.out.println("进行魔法攻击");
    }
 
    @Override
    public void physicAttack() {
        System.out.println("进行物理攻击");
    }
 
}
								
								
					如上的例子,似乎要接口,不要接口,都一样的,那么接口的意义是什么呢 
					
				学习一个知识点,是由浅入深得进行的。 这里呢,只是引入了接口的概念,要真正理解接口的好处,需要更多的实践,以及在较为复杂的系统中进行大量运用之后,才能够真正理解,比如在学习了多态之后就能进一步加深理解。 刚刚接触一个概念,就希望达到炉火纯青的学习效果,这样的学习目标是不科学的。 
					设计一个治疗者接口:Healer 
					
				该接口声明有方法: heal() 设计一个Support类,代表辅助英雄,继承Hero类,同时实现了Healer这个接口 
				
										
				在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
			 
					
			
		
	
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
 
	
	
	 
	44秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器 public interface Healer {
	public void heal(); //加血
}
 
									
								public interface Healer {
	public void heal(); //加血
}
								
								
public class Support extends Hero implements Healer{
	@Override
	public void heal() {
		System.out.println(name+" 加了一口血");
	}
}
 
									
								
public class Support extends Hero implements Healer{
	@Override
	public void heal() {
		System.out.println(name+" 加了一口血");
	}
}
								
								
				HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
			 
			 
			
			
			
			
			
		
		
		
		 	问答区域     
		 	
				
		  
	 
	  		
	  
	  	2021-07-30
	  		
	  				
	  					 
	  
					
						@override是什么意思? 
					
					
						
							
						
											
							
					
					
					
	   
	  
	  
	  
 
17 个答案 
	 
1563590a 跳转到问题位置 答案时间:2025-01-09 2个原因
    编译器校验:使用@Override注解后,编译器会在编译时检查该方法是否真正覆盖了父类或接口中的方法。如果方法签名不匹配,即方法名、参数列表或返回类型与父类或接口中的方法不一致,编译器会报错,从而提醒开发者进行修正。这有助于避免因为拼写错误或参数列表不同而导致的意外方法重载(Overload)
    提升代码可读性:@Override注解可以明确标识出哪些方法是重写方法,使得其他开发者在阅读代码时能够更容易地理解代码逻辑。同时,开发者自己隔一段时间回看代码时,也能快速回忆起该方法的含义和作用
 
		
							
		
		
		
		
	
		
		hncj指尖风雨 跳转到问题位置 答案时间:2023-12-29 package demo2;
public interface Healer {
    public void heal();
}
package demo2;
import demo9.Hero;
public class Support extends Hero implements Healer {
    @Override
    public void heal() {
        System.out.println("治疗");
    }
}
package demo9;
public class Hero {
    private String name;
    private float hp;
    private float armor;
    private int moveSpeed;
    static String copyright;
    public Hero(){
    }
    public Hero(String name,float hp){
        this.name=name;
        this.hp=hp;
        System.out.println("第一种构造方法被执行  ");
    }
    public Hero(String name,float hp,float armor,int moveSpeed){
        this(name,hp);
        this.armor=armor;
        this.moveSpeed=moveSpeed;
        System.out.println("第二种构造方法被调用 ");
    }
    public static void main(String[] args) {
        Hero h1=new Hero("张三",12.2F,22.0F,3);
    }
}
 
		
							
		
		
		
		
	
		
		MEMBER 跳转到问题位置 答案时间:2023-12-29 一种自带的提示,重写父类方法
 
		
							
		
		
		
		
	
		
		alleyf 跳转到问题位置 答案时间:2023-10-08 lzqcdlxhy 跳转到问题位置 答案时间:2023-05-20 重写的注解 
		
							
		
		
		
		
	
		
		kingstk 跳转到问题位置 答案时间:2023-02-18 伊亻 跳转到问题位置 答案时间:2023-01-18 给你买粉包 跳转到问题位置 答案时间:2022-10-19 package JIchuDome;
/**为Hero设计4个参数的构造方法
 这四个参数分别是
 String heroName
 float heroHP
 float heroArmor
 int heroMoveSpeed
 */
public class Hero {
/*
    //构造方法私有化,外部无法访问,
    private Hero(){
    }
//准备类属性,指向实例化对象
    private static Hero hero = new Hero();
//提供给调用者获取类对象方法
    public static Hero getHero(){
        return hero;
    }
 */
    String name; //姓名
    float HP; //血量
    float Armor; //护甲
    int MoveSpeed; //移动速度
    @Override
    public String toString() {
        return "Hero{" +
                "name='" + name + '\'' +
                ", HP=" + HP +
                ", Armor=" + Armor +
                ", MoveSpeed=" + MoveSpeed +
                '}';
    }
    //复活方法
    public void revive(Hero h){
        this.HP=383;
    }
}
 
		
							
		
			
			
		
		
		
			
		
		
	
		
		dl1796859828 跳转到问题位置 答案时间:2022-09-29 package charactor;
public class HealerHero extends Hero implements Healer{
public void heal() {
 
		
							
		
		
		
		
	
		
		CaiNiao_1 跳转到问题位置 答案时间:2022-08-24 package charactor;
import day1.Hero;
public class Support extends Hero implements Healer {
    @Override
    public void heal(){
        System.out.println("回血");
    }
}
 
		
							
		
		
		
		
	
		
		dyf学java 跳转到问题位置 答案时间:2022-05-01 feiyu_666 跳转到问题位置 答案时间:2022-03-31 package character;
public interface Healer{
           public vois heal();
}
 
		
							
		
			
			
		
		
		
			
		
		
	
		
		hoolich 跳转到问题位置 答案时间:2022-03-12 package charactor;
public interface Healer {
    public void  heal();
}
 
		
							
		
			
			
		
		
		
			
		
		
	
		
		kuxingsengmachao 跳转到问题位置 答案时间:2022-02-14 从入门到入坟 跳转到问题位置 答案时间:2022-01-29 package HERO;
public class Support extends hero implements Healer{
    public void heal(){
        System.out.println("进行治疗");
    }
    public static void main(String[] args) {
        Support cai = new Support();
        cai.name="也咩得";
        System.out.print(cai.name);
        cai.heal();
    }
}
package HERO;
public interface Healer {
    public void heal();
}
 
		
							
		
		
		
		
	
		
		kyx889545 跳转到问题位置 答案时间:2021-11-26 package charactor;
 
public interface Healer{
 
    public void heal();
} 
		
							
		
			
			
		
		
		
			
		
		
	
		
		飞鸟 跳转到问题位置 答案时间:2021-07-30 当一个方法带有@override表示该方法是重写父类的方法
 
		
							
		
			
			
		
		
		
			
		
		
	
	
	
		回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢	
	 
	  		
	  
	  	2021-07-09
	  		
	  				
	  					 
	  
					
						2021-7-9-PM-2-30 
					
					
						
							
						
											
							
					
					
					
	   
	  
	  
	  
 
7 个答案 
	 
jleeci 跳转到问题位置 答案时间:2024-08-01 learn杜 跳转到问题位置 答案时间:2023-01-30 package Interface;
public class Healerhero extends Hero implements Healer{
	public void heal(){
		System.out.println("这是辅助类英雄");
	}
	
	
}
 
		
							
		
		
		
		
	
		
		阿文6 跳转到问题位置 答案时间:2022-10-22 /*package charator;
public interface Healer {
	public void heal();
}
*/
/*package charator;
public class SupportHero extends Hero implements Healer {
	public void heal(){
		System.out.println("提供治疗帮助");
	}
}
*/ 
		
							
		
		
		
		
	
		
		芬达味橘猫 跳转到问题位置 答案时间:2022-05-05 wxd123 跳转到问题位置 答案时间:2021-07-22 李哥qaq 跳转到问题位置 答案时间:2021-07-13 白日梦家 跳转到问题位置 答案时间:2021-07-09 
		回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢	
	 
	  		
	  
	  	2021-04-20
	  		
	  				
	  					 
	  
					
						答案 
					
					
						
							
						
											
							
					
					
					
	   
	  
	  
	  	    
	    
	  
	  		
	  
	  	2021-03-23
	  		
	  				
	  					 
	  
					
						通过类和接口的比较来描述接口的作用 
					
					
						
							
						
											
							
					
					
					
	   
	  
	  
	  	    
	    
	  
	  		
	  
	  	2021-02-01
	  		
	  				
	  					 
	  
					
						hero类单例后adhero继承就报错 
					
					
						
							
						
											
							
					
					
					
	   
	  
	  
	  	    
	    
	  提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 48 条以前的提问,请 点击查看 
			
			提问之前请登陆
			
		 
		提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢	
	 
 |