鱼C论坛

 找回密码
 立即注册
查看: 5311|回复: 6

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

[复制链接]
发表于 2021-9-18 21:04:33 | 显示全部楼层 |阅读模式
1鱼币
题目:
计算器具有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();
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-18 21:09:49 | 显示全部楼层
完了正在学java
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-9-18 21:41:13 | 显示全部楼层
Gacy 发表于 2021-9-18 21:09
完了正在学java

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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方法");
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-9-19 19:44:39 | 显示全部楼层
巴巴鲁 发表于 2021-9-19 09:25
CellPhone类

Test测试类

额,我看题目写的要求通过内部类实现这个功能,但您的答案里似乎没有涉及到内部类啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-21 17:37:41 | 显示全部楼层
我咋记得Java没有多继承,如果是接口是多重实现
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

内部类把CellPohne放到Test类中就行了
我不知道题目具体要怎样,我这种创建一个对象调用work方法就行了,你的需要创建两个对象,调用两次方法
对于本题目我觉得用我的方法好些,因为他们都具有work方法,易于扩展
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 18:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表