java的继承与组合的区别
继承和组合的概念
在新类里简单地创建原有类的对象。我们把这种方法叫作“组合”,因为新类由现有类的对象合并而成。我们只是简单地重复利用代码的功能,而不是采用它的形式。
第二种方法是创建一个新类,将其作为现有类的一个“类型”。我们可以原样采取现有类的形式,并在其中加入新代码,同时不会对现有的类产生影响。这种魔术般的行为叫作“继承”(Inheritance),涉及的大多数工作都是由编译器完成的。对于面向对象的程序设计,“继承”是最重要的基础概念之一。对于组合和继承这两种方法,大多数语法和行为都是类似的(因为它们都要根据现有的类型生成新类型)。
使用场合:
组合:各部件之间没什么关系,只需要组合即可。like组装电脑,需要new CPU(),new RAM(),new Disk()……
演示代码如下:
public class Computer {
public Computer() {
CPU cpu=new CPU();
RAM ram=new RAM();
Disk disk=new Disk();
}
}
class CPU{ }
class RAM{ }
class Disk{ }
继承:子类需要具有父类的.功能,各子类之间有所差异。like Shape类作为基类,子类有Rectangle,CirCle,Triangle……
演示代码如下:
class Shape {
public void draw() {
tln("draw a shape");
}
public void erase() {
tln("erase");
}
}
class Square extends Shape {
@Override
public void draw() {
tln("draw a Square");
}
public static void main(String[] args) {
Square s = new Square();
();
e();
}
}
一、相比于组合,继承有以下优点:
1、在继承中,子类自动继承父类的非私有成员(default类型视是否同包而定),在需要时,可选择直接使用或重写。
2、在继承中,创建子类对象时,无需创建父类对象,因为系统会自动完成;而在组合中,创建组合类的对象时,通常需要创建其所使用的所有类的对象。
二、组合的优点:
1、在组合中,组合类与调用类之间低耦合;而在继承中子类与父类高耦合。
2、可动态组合。
总结:
虽然继承是OOP的一大特性,但很多时候并不推荐使用,因为它常常容易使结构复杂化,容易出错。因此,除非我们确信使用继承会使程序效率最高,否则,不考虑使用它。
-
新手学习Java最高效的10个计划
对于新手来说学习Java如同堵天书,下面是本站小编收集的关于新手学习Java最高效的10个计划,希望可以为您的学习带来帮助!计划一:了解未来技术发展方向两耳不闻窗外事,在如今是不合适的,尤其是在瞬息万变的互联网时代,作为一个开发者技术跟不上可以去专研,思想要跟不上,...
-
讲述java中enum的用法
本文实例讲述了java中enum的用法。分享给大家供大家参考。具体分析如下:1.基本用法复制代码代码如下:enumDay{SUNDAY,MONDAY,TUESDAY,WENDSDAY,THURSDAY,FRIDAY,SATURDAY;}枚举是常量,所以应该用大写。2.枚举是对象枚举隐含地继承了,所以它具有的.属性和方法。遍...
-
java中String和StringBuffer的区别
java中String和StringBuffer的区别String这个类是Java中使用得最频繁的类之一,以下就是小编精心推荐java中String和StringBuffer的区别,希望对大家有帮助!看到这个讲解的不错,所以转一下在java中有3个类来负责字符的操作。acter是进行单个字符操作的,ng对一串字符...
-
Java技术怎么学习
对于很多只会C语言的初学者而言,面对java基础语法学习,反而感觉很难,其实其中最大的问题不是语法难,而是一种编程思想的转变。怎么学习才是正确的呢?下面是相关的知识,欢迎阅读。1.概述学过一段时间的同学一定会觉得Java学习最头疼的不是语法结构的繁杂,而是Java本身...