标题:接口和内部类问题 刚学搞不懂
只看楼主
搁浅、
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-11-28
结帖率:50%
已结贴  问题点数:20 回复次数:4 
接口和内部类问题 刚学搞不懂
interface Machine
{
    void run();
}

class Person
{
    void run()
    {
        System.out.println("run");
    }
}

class Robot extends Person
{
    /*private*/ class MachineHeart implements Machine
    {
        public void run()
        {
            System.out.println("heart run");
        }
    }
    MachineHeart getMachine()
    {
        return new MachineHeart();
    }
}

class Test
{
    public static void main(String[] args)
    {
        Robot robot=new Robot();
        Robot.MachineHeart m=robot.new MachineHeart();//这里
        m.run();
        robot.run();
    }
}
上面那行换成Machine m=robot.getmachine();   这里为什么要用Machine而不可以用MachineHeart
搜索更多相关主题的帖子: interface private public return heart 
2013-08-05 17:04
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
得分:20 
在Robot类内部使用内部类MachineHeart来实现接口Machine的run方法。
run方法在Machine这个里面。
    MachineHeart getMachine()
    {
        return new MachineHeart();
    }
这里返回的对象类型是Machine
Machine m=robot.getmachine();
这里调用了上面的getmaching方法所以……
要不然Machine m=robot.getmachine(); 这句话就报错了

学海无涯#¥%……&*(
2013-08-05 17:26
搁浅、
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-11-28
得分:0 
回复 2楼 java小蚂蚁
为什么返回的是Machine而不是MachineHerat啊,有点搞不清楚
2013-08-05 17:50
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
得分:0 
MachineHeart getMachine()
    {
        return new MachineHeart();
    }
这里返回的是一个实例。

学海无涯#¥%……&*(
2013-08-06 17:15
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
得分:0 
这没什么好纠结的。

学海无涯#¥%……&*(
2013-08-06 17:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-418662-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047362 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved