一、问题:
使用代码描述:
我们平时的家用电器,都需要通电,然后开启,或者关闭,而且每个家用电器都有自己特殊的功能,比如:
电视,除了通电之后的开启和关闭,还有播放电视剧的功能
空调,除了通电之后的开启和关闭,还有制冷的功能
二、思路
1、在父类家用电器中(Appliance)定义开启(Open)和关闭(Close)的功能,将其定义为抽象方法。
2、接口(Sockets)中定义通电(tongDian)。
3、子类电视(TV)、空调(Conditioner)继承父类的方法,并对父类的方法进行重写。
4、定义测试类,创建两个子类的对象,并调用重写的方法。
三、代码展示与注释
package com.edu.manager;
// 家电抽象类
public abstract class Appliance {
// 打开家电
void Open(){}
// 关闭家电
void Close(){}
}
// 插座接口
public interface Sockets {
// 通电
void tongDian();
}
// 电视类,继承自家电抽象类,实现插座接口
public class TV extends Appliance implements Sockets {
String tvName;
// 构造方法
public TV(String tvName){
this.tvName=tvName;
}
// 打开电视
public void Open(){
System.out.println("电视机打开");
}
// 关闭电视
public void Close(){
System.out.println("电视机关闭");
}
// 通电方法实现
public void tongDian(){
System.out.println("给"+tvName+"通电");
}
// 观看电影方法
public void See(){
System.out.println("我要看电影!");
}
}
// 空调类,继承自家电抽象类,实现插座接口
public class Conditioner extends Appliance implements Sockets {
String conditionerName;
// 构造方法
public Conditioner(String conditionerName){
this.conditionerName=conditionerName;
}
// 打开空调
public void Open(){
System.out.println("打开空调");
}
// 关闭空调
public void Close(){
System.out.println("关闭空调");
}
// 通电方法实现
public void tongDian(){
System.out.println("给"+conditionerName+"通电");
}
// 产生冷风方法
public void feel(){
System.out.println("冷风");
}
}
// 家电管理类
public class ApplianceManagement {
public static void main(String[] args) {
// 创建电视对象和空调对象
Appliance xMi=new TV("小米电视机");
Appliance meiDi=new Conditioner("美的空调");
// 调用电视对象的方法
((TV) xMi).tongDian();
xMi.Open();
((TV) xMi).See();
xMi.Close();
// 调用空调对象的方法
((Conditioner) meiDi).tongDian();
meiDi.Open();
((Conditioner) meiDi).feel();
meiDi.Close();
}
}
运行结果为:
给小米电视机通电
电视机打开
我要看电影!
电视机关闭
给美的空调通电
打开空调
冷风
关闭空调
Process finished with exit code 0