Logo

郎哥编程

实现多个接口

2019-12-20 223

在Java语言中,一个类可以实现多个接口。当一个类实现多个接口时,这个类必须实现所有接口中声明的方法。

案例1:编写汽车程序时,可以把有关汽车的行为分类放到不同的接口中,汽车类可以选择合适的接口来实现这些行为。在程序中定义汽车运行接口Runner和车身颜色接口BodyColor。在Runner接口定义方法run;在BodyColor接口定定义一个modifyBodyColor方法,用于改变车身颜色。建立Car类实现Runner接口和BodyColor接口。

在PCoreUnit2项目新建automobile包,在automobile包下新建Runner接口。代码如下:

package automobile;
 
/** 
* @ClassName: Runner 
* @Description: 抽象类与接口(实现多个接口)案例1 
* @author 编程训练营 
* @date 
* 
*/
 
public interface Runner {
    // 定义run方法
    public void run();
}

Runner接口定义了一个run方法。

在automobile包下新建BodyColor接口。代码如下:

package automobile;
 
/** 
* @ClassName: BodyColor 
* @Description: 抽象类与接口(实现多个接口)案例1
* @author 编程训练营 
* @date 
* 
*/
 
public interface BodyColor {
    // 定义modifyBodyColor方法
    public void modifyBodyColor(long color);
}

BodyColor接口定义了一个modifyBodyColor方法,用于改变车身颜色。

在automobile包下新建Car类,实现Runner接口BodyColor接口。在New Java Class对话框(如下图所示),单击【Add】按钮添加Runner接口BodyColor接口到Interfaces列表区域。也可以在代码中手动添加。


Car类代码如下:

package automobile;
 
/** 
* @ClassName: Car 
* @Description: 抽象类与接口(实现多个接口)案例1 
* @author 编程训练营 
* @date 
* 
*/
 
public class Car implements Runner,BodyColor {
 
    /**
    * <p>Title: modifyBodyColor</p> 
    * <p>Description: </p> 
    * @param color 
    * @see automobile.BodyColor#modifyBodyColor(long) 
    */
 
    @Override
    public void modifyBodyColor(long color) {
       // TODO Auto-generated method stub
System.out.println("修改车身颜色为:" + color);         
}
 
    /**
    * <p>Title: run</p> 
    * <p>Description: </p>   
    * @see automobile.Runner#run() 
    */
 
    @Override
    public void run() {
       // TODO Auto-generated method stub
       System.out.println("汽车开始运行");
 
    }
 
}

Car类实现了Runner接口和BodyColor接口。当一个类实现多个接口时,接口名称之间用英文逗号分隔。

在automobile包下新建测试类CarTest类,测试Car类。代码如下:

package automobile;
 
/** 
* @ClassName: CarTest 
* @Description: 抽象类与接口(实现多个接口)案例1
* @author 编程训练营 
* @date 
* 
*/
 
public class CarTest {
 
    /** 
    * @Title: main 
    * @Description: Java程序入口main方法 
    * @param @param args    参数 
   
    * @return void    返回类型 
    * @throws 
    */
 
    public static void main(String[] args) {
       // 实例化Car对象
       Car car = new Car();
       // 调用接口方法
       car.modifyBodyColor(255);
       car.run();
    }
 
}

程序执行结果如下图所示:


image.png 

接口无法被实例化,仅可以被类实现。多个类可以实现同一个接口,一个类也可以实现多个接口。

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论