黑马程序员技术交流社区

标题: 两个石头磨成一把石刀我的理解方法 [打印本页]

作者: 卢其龙    时间: 2012-1-5 12:16
标题: 两个石头磨成一把石刀我的理解方法
本帖最后由 卢其龙 于 2012-1-10 15:04 编辑

首先在此祝张老师一路走好
-------------------------------------------
两个石头磨成一把石刀,石刀可以砍树,伐成木头,木头可以做成椅子


//这里只写 石头磨成石刀
//我主要感觉有两点  1继承:石刀属于石头(这样有利于以后扩展)
                                 2静态方法:这个在石头里,由于不是石头自身操作,用静态更好.
不知道我理解的对吗?大家有什么看法?

石头
{
    public static 石刀 磨 (石头,石头)
    {
        return  石刀
     }
}
石刀 extends 石头
{
  public 木头 砍树 (树)
{
     木头
}
}

{
}
木头 extends 树
{
}
椅子
{
}
入口
{
    石刀  小李飞刀 = 石头.磨(石头,石头);
}
作者: 李晓光    时间: 2012-1-5 12:37
{:soso_e114:} ,  石刀 继承 石头
                 木头 继承 树
  

作者: 刘基军    时间: 2012-1-5 14:57
石头
{
    public static 石刀 磨 (石头,石头)
    {
        return  石头    //-----这边是不是应该为“return 石刀”
     }
}

作者: 卢其龙    时间: 2012-1-5 16:24

石头
{
    public static 石刀 磨 (石头,石头)
    {
        return  石头    //-----这边是不是应该为“return 石刀”
     }
}
----------------------------------已修改
作者: wrlqwe    时间: 2012-9-4 15:29
我觉得lz的说法有些不妥,石刀既然是石头的子类,那作为子类的石刀怎么能在父类中生成呢?

与其写石头磨的方法,不如写成石刀的构造方法
石刀

    private 石刀(){}
    public 石刀(石头1,石头2){}
    public 木头 砍树(树)
    {
        return 木头;
    }


既然是石刀的类生产出石刀的对象,那磨的动作也就等同于石刀的构造过程,如果没有两块石头对象,石刀也不会产生的
这样同理也可以让木头,椅子用这样的方式产生:

new 椅子(new 木头(new 石刀(石头1,石头2).砍树(new 树())));
new Chair(new Wood(new StoneKnife(stone1,stone2 ).cut(new Tree())));






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2