基于类和基于原型的面向对象语言概念区别

  • 2017-03-18 11:22:05
  • 4,054 次阅读
  • 稿源:天马行空

面向对象的程序语言,可以将其分为基于类的面向对象语言和基于原型的面向对象语言两种。JavasSript属于基于原型的面向对象语言,而Java、C++等程序语言都属于基于类的面向对象语言。

在基于类的面向对象语言中和基于原型的面向对象语言中,最基本的概念有所不同。

1.基于类的面向对象语言的基本概念

①类:在基于类的面向对象语言中,类是用于定义一个对象的所有属性和方法的集合。类是一个很抽象的概念,可以用于描述一个对象的所有成员。例如,一个显示器类可以用来描述所有显示器。在此,“类”相当于一个类别。

②实例:实例是类的一个特例,也可以认为是类的一个具体对象。例如,从电脑城购买一台显示器就是显示器一个实例。实例就是将类具体到某一个事物。实例所拥有的属性和方法与类完全相同,不会多一个,也不会少一个。

2.基于原型的面向对象语言的基本概念

基于原型的面向对象语言则没有类和实例这两个基本概念。基于原型的面向对象语言中,只有一个概念,那就是“对象”。在这种基于原型的面向对象语言中,有着与基于类的面向对象语言所完全不同的另一个概念,这个概念称为“原型对象”。

原型对象就像是一个模板,通过原型对象这个模板可以创建其他的新对象。模板的作用只是初始化对象中的属性和方法。从这个方面来看,原型对象与类的概念有些类似,但是使用原型对象所创建的新对象还可以指定自己的属性和方法,而使用类创建的实例只能拥有类中的属性和方法,不能拥有自己的属性和方法。

除此之外,一个对象还可以是一个对象的原型对象,另一个对象可以共享该对象的原型对象的属性和方法。

classAndPro

喜欢 0

文章评论 (0)

表情

大眼 可爱 大笑 坏笑 害羞 发怒 折磨 快哭了 大哭 白眼 晕 流汗 困 腼腆 惊讶 憨笑 色 得意 骷髅 囧 睡觉 眨眼 亲亲 疑问 闭嘴 难过 淡定 抗议 鄙视 猪头