组合和继承有什么区别?组合和继承是⾯向对象中两种代码复⽤的⽅式。
1.组合定义
质量保证协议书在新类⾥⾯创建原有类的对象,重复利⽤已有类的功能。(has-a关系)
2.继承定义
可以使⽤现有类的功能,并且在⽆需重复编写原有类的情况下对原有类进⾏功能上的扩展。(is-a关系)
照片的英文3.实例⽐较Vehicle表⽰交通⼯具对象Car表⽰汽车对象
四字idTire表⽰轮胎对象
4.两种⽅式的选择
除⾮两个类之间是“is-a”的关系,否则不要轻易的使⽤继承,不要单纯的为了实现代码的重⽤⽽使⽤继承,因为过多的使⽤继承会破坏代码的可维护性,当⽗类被修改时,会影响到所有继承⾃它的⼦类,从⽽增加程序的维护难度和成本。
不要仅仅为了实现多态⽽使⽤继承,如果类之间没有“is-a”的关系,可以通过实现接⼝与组合的⽅式来达
到相同的⽬的。设计模式中的策略模式可以很好的说明这⼀点,采⽤接⼝与组合的⽅式⽐采⽤继承的⽅式具有更好的可扩展性。
在Java语⾔中,能使⽤组合就尽量不要使⽤继承。/***继承*/class Vehicle {}class Car entends Vehicle {}1
2
3
4
5
6
7/***组合*/class Tire {}class Car entends Vehicle { private Tire t = new Tire ();}
hdd和ssd1
2
3
大鹏一日
甜品店创业计划书4
5
6
军力排名旅行景点7
8