dequantianhe 发表于 2021-9-18 21:04:33

如何通过内部类实现多继承效果?

题目:
计算器具有work方法,功能是运算,时钟同样具有work方法,功能是计时,有一个手机类Cellphone,同时需要拥有运算和计时功能,通过内部类实现多继承效果。

这道题我不太理解,究竟是要达到什么效果?我下面的这个写法对吗?

public class CellphoneTest {
        class Calculater implements Work{
                public void work(){
                        System.out.println("我是计算器,具备运算功能。");
                }
        }
        class Clock implements Work{
                public void work(){
                        System.out.println("我是时钟,具备计时功能。");
                }
        }
        public static void main(String[] args) {
                CellphoneTest cellphone = new CellphoneTest();
                CellphoneTest.Calculater cell_Calculater = cellphone.new Calculater();
                CellphoneTest.Clock cell_Clock = cellphone.new Clock();
                cell_Calculater.work();
                cell_Clock.work();
        }
}

interface Work{
        void work();
}

Gacy 发表于 2021-9-18 21:09:49

完了正在学java{:10_254:}

dequantianhe 发表于 2021-9-18 21:41:13

Gacy 发表于 2021-9-18 21:09
完了正在学java

{:5_109:}

巴巴鲁 发表于 2021-9-19 09:25:59

CellPhone类
public class CellPhone implements Calculate, Time
{
    @Override
    public void work()
    {
      Calculate.super.work();
      Time.super.work();
    }
}

Test测试类
public class Test
{
    public static void main(String[] args)
    {
      CellPhone cellPhone = new CellPhone();
      cellPhone.work();
    }
}

时钟接口
public interface Time
{
    default void work()
    {
      System.out.println("我是时钟的work方法");
    }
}

计算器接口
public interface Calculate
{
    default void work()
    {
      System.out.println("我是计算器的work方法");
    }
}

dequantianhe 发表于 2021-9-19 19:44:39

巴巴鲁 发表于 2021-9-19 09:25
CellPhone类

Test测试类


额,我看题目写的要求通过内部类实现这个功能,但您的答案里似乎没有涉及到内部类啊

不会起名字的我 发表于 2021-9-21 17:37:41

我咋记得Java没有多继承,如果是接口是多重实现

巴巴鲁 发表于 2021-9-22 08:50:53

dequantianhe 发表于 2021-9-19 19:44
额,我看题目写的要求通过内部类实现这个功能,但您的答案里似乎没有涉及到内部类啊

内部类把CellPohne放到Test类中就行了
我不知道题目具体要怎样,我这种创建一个对象调用work方法就行了,你的需要创建两个对象,调用两次方法
对于本题目我觉得用我的方法好些,因为他们都具有work方法,易于扩展
页: [1]
查看完整版本: 如何通过内部类实现多继承效果?