网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文
当前位置:书香门第 > 计算机 > java语言

java的继承与组合的区别

栏目: java语言 / 发布于: / 人气:1.98W

  继承和组合的概念

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的一大特性,但很多时候并不推荐使用,因为它常常容易使结构复杂化,容易出错。因此,除非我们确信使用继承会使程序效率最高,否则,不考虑使用它。

Tags:JAVA 继承