美文网首页
组合与继承的区别

组合与继承的区别

作者: sunpy | 来源:发表于2018-08-02 21:50 被阅读22次

    介绍

    最近发现基础越来越重要,就打算再看一边编程思想,发现了天天在用的组合和继承。不废话了。
    组合通常就是在新类中使用现有类的功能,而不是现有类的结构。新类中通过使用现有类的功能而完成新的功能。组合这种形式就是一种显式地调用。
    继承的意思就是父类和子类是同一类的东西。只是通过使用新类来扩展父类的功能。子类只是父类的一种特殊的类型。继承是一种隐式地调用。

    例子

    组合:华为手机可以听音乐,oppo手机使用华为手机的功能来提供了新功能,听音乐上网。

    public class HuaweiMobile {
        
        public void music() {
            System.out.println("听音乐");
        }
    }
    
    public class OppoMobile {
    
        private HuaweiMobile huaweiMobile;
        
        // 上网
        public void surfOnline() {
            huaweiMobile.music();
            System.out.println("上网");
        }
    }
    

    继承:华为手机1代可以听音乐,华为手机2代基于1代手机既可以上网也可以听音乐。

    public class HuaweiMobile {
        
        public void music() {
            System.out.println("听音乐");
        }
    }
    
    public class HuaweiMobile2 extends HuaweiMobile{
    
        // 上网
        public void surfOnline() {
            super.music();
            System.out.println("上网");
        }
    }
    

    区别

    组合说到底是通过has-a(有一个)这种方式来表达两个事物之间的关系。继承是通过is-a(是一个)这种方式来表达两个事物之间的关系。

    相关文章

      网友评论

          本文标题:组合与继承的区别

          本文链接:https://www.haomeiwen.com/subject/ztcdvftx.html