家用电器在使用前都需要通电和开启,因此如果要使用家用电器,则需要同时满足通电和开启两个条件。此外,对于不同的家用电器,还具有不同的功能。

1.定义一个家用电器类Appliance作为父类,定义两个抽象方法:开启open()和关闭close();
2.定义一个电源接口Power,定义一个抽象方法:通电getElectricity();
3.定义一个洗衣机子类,继承家用电器类的同时实现电源接口,重写抽象方法;
4.定义一个电饭煲子类,继承家用电器类的同时实现电源接口,重写抽象方法;
5.定义测试类,创建子类对象,调用重写的方法和子类特有的方法。
要求输出结果如图

img

abstract class Appliance {
    public abstract void open();

    public abstract void close();
}

interface Power {
    void getElectricity();
}

class XiYiJi extends Appliance implements Power {

    @Override
    public void open() {
        System.out.println("开启洗衣机");
    }

    @Override
    public void close() {
        System.out.println("关闭洗衣机");
    }

    @Override
    public void getElectricity() {
        System.out.println("洗衣机通电了");
    }

    public void wash() {
        System.out.println("洗衣机正在洗衣");
    }
}

class DianFanBao extends Appliance implements Power {

    @Override
    public void open() {
        System.out.println("开启电饭煲");
    }

    @Override
    public void close() {
        System.out.println("关闭电饭煲");
    }

    @Override
    public void getElectricity() {
        System.out.println("电饭煲通电了");
    }

    public void cook() {
        System.out.println("电饭煲正在煮饭");
    }
}

public class Test01 {
    public static void main(String[] args) {
        final XiYiJi xiYiJi = new XiYiJi();
        xiYiJi.getElectricity();
        xiYiJi.open();
        xiYiJi.wash();
        xiYiJi.close();
        System.out.println("-------分割线--------");
        final DianFanBao dianFanBao = new DianFanBao();
        dianFanBao.getElectricity();
        dianFanBao.open();
        dianFanBao.cook();
        dianFanBao.close();
    }

}

代码如下:

package com.example.test.zz.test;

/**
 * @author xiaoxiaoyezu
 * @date 2022/12/21
 * @desc default
 **/
public abstract class Appliance {

    String open() {
        return null;
    }

    String close(){
        return null;
    }
}





==============================================

package com.example.test.zz.test;

/**
 * @author xiaoxiaoyezhu
 * @date 2022/12/21
 * @desc default
 **/
public class DFB extends Appliance implements Power{

    @Override
    public String open() {

        return "开启电饭煲";
    }

    @Override
    String close() {
        return "关闭电饭煲";
    }


    @Override
    public String getElectricity() {
        return "电饭煲通电了";
    }
}








===========================================
package com.example.test.zz.test;

/**
 * @author xiaoxiaoyezhu
 * @date 2022/12/21
 * @desc default
 **/
public class XYJ extends Appliance implements Power {

    @Override
    public String open() {
        return "开启洗衣机";
    }

    @Override
    String close() {
        return "关闭洗衣机";
    }

    @Override
    public String getElectricity() {
        return "洗衣机通电了";
    }
}




=================================================

package com.example.test.zz.test;

/**
 * @author xiaoxiaoyezu
 * @date 2022/12/21
 * @desc default
 **/
public interface Power {

    String getElectricity();
}


package com.example.test.zz.test;

/**
 * @author xiaoxiaoyezhu
 * @date 2022/12/21
 * @desc default
 **/
public class Test {
    public static void main(String[] args) {
        XYJ xyj = new XYJ();
        System.out.println(xyj.getElectricity());
        System.out.println(xyj.open());
        System.out.println(xyj.close());

        System.out.println("------------分割线-----------");

        DFB dfb = new DFB();
        System.out.println(dfb.getElectricity());
        System.out.println(dfb.open());
        System.out.println(dfb.close());
    }
}

截图:

img

// 1. 定义家用电器类 Appliance
public
abstract class Appliance
{
    // 2.1 定义开启方法 open()
public
    abstract void open();
    // 2.2 定义关闭方法 close()
public
    abstract void close();
}

// 3. 定义电源接口 Power
public interface Power {
    // 3.1 定义通电方法 getElectricity()
    void getElectricity();
}

// 4.1 定义洗衣机类,继承家用电器类 Appliance 并实现电源接口 Power
public class WashingMachine extends Appliance implements Power
{
    // 4.2 重写抽象方法 open()
    @Override public void open()
    {
        System.out.println("开启洗衣机");
    }
    // 4.3 重写抽象方法 close()
    @Override public void close()
    {
        System.out.println("关闭洗衣机");
    }
    // 4.4 重写抽象方法 getElectricity()
    @Override public void getElectricity()
    {
        System.out.println("洗衣机通电了");
    }
    // 4.5 定义洗衣方法
public
    void wash()
    {
        System.out.println("洗衣机正在洗衣");
    }
}

// 5.1 定义电饭煲类,继承家用电器类 Appliance 并实现电源接口 Power
public class RiceCooker extends Appliance implements Power
{
    // 5.2 重写抽象方法 open()
    @Override public void open()
    {
        System.out.println("开启电饭煲");
    }
    // 5.3 重写抽象方法 close()
    @Override public void close()
    {
        System.out.println("关闭电饭煲");
    }
    // 5.4 重写抽象方法 getElectricity()
    @Override public void getElectricity()
    {
        System.out.println("电饭煲通电了");
    }
    // 5.5 定义做饭方法
public
    void cook()
    {
        System.out.println("电饭煲正在做饭");
    }
}

// 6. 定义测试类
public class Test
{
public
    static void main(String[] args)
    {
        // 6.1 创建洗衣机对象
        WashingMachine washingMachine = new WashingMachine();
        // 6.2 调用洗衣机的通电方法
        washingMachine.getElectricity();
        // 6.3 调用洗衣机的开启方法
        washingMachine.open();
        // 6.4 调用洗衣机的洗衣方法
        washingMachine.wash();
        // 6.5 调用洗衣机的关闭方法
        washingMachine.close();
        // 6.6 输出分割线
        System.out.println("---------分割线---------");
        // 6.7 创建电饭煲对象
        RiceCooker riceCooker = new RiceCooker();
        // 6.8 调用电饭煲的通电方法
        riceCooker.getElectricity();
        // 6.9 调用电饭煲的开启方法
        riceCooker.open();
        // 6.10 调用电饭煲的做饭方法
        riceCooker.cook();
        // 6.11 调用电饭煲的关闭方法
        riceCooker.close();
    }