java + (C++) != C#

发表于:2007-07-04来源:作者:点击数: 标签:
在我的印象中一直将C#归结为在C++基础上,参考JAVA语言设计的一种语言; 今天仔细的看了看C#的特性,发现这样的认识有失偏颇; 为了便于认识我们将一种计算机语言分成三部分比较; 基本的语法; 组织结构( 面向对象 ); 特定功能; ü 这三种语言在基本的语


在我的印象中一直将C#归结为在C++基础上,参考JAVA语言设计的一种语言;

今天仔细的看了看C#的特性,发现这样的认识有失偏颇;

为了便于认识我们将一种计算机语言分成三部分比较;



基本的语法;

组织结构(面向对象);

特定功能;



ü 这三种语言在基本的语法结构上都是非常的想象的;

ü C#和JAVA在面向对象方面是很相似的,抛开关键词的不同(继承的关键词,最终化的关键词等);

n 类型,

n 接口,

n 虚类,

n 类型间的单继承,

n 接口间的多继承,

n 类和接口间的多实现

可以说C#简直就是照搬了JAVA的面向对象的特性;

ü 特殊功能方面;C#为了保留C++强大的功能做出了不懈的努力,例如区分形式参数的值调用,引用调用等等;个人感觉为了保留指针能提供的功能C#做出了不懈的努力;委托实际上是函数指针的一种非指针实现;还有在类型级别加入对事件的支持;都能看到C#做出了很多改变;



个人感觉,C#是想把JAVA简单的面向功能部分和C++强大灵活的功能集成在一起,借助于.NET基类库和通用语言运行时实现一个完美的语言;

可是我感觉她走了C++的老路,功能是挺多,挺强;但是没有给人有重点的感觉;反观JAVA掌握JAVA是一件令人愉快的事情,因为它目的明确,不会有太多让人混尧的功能;C#为了最大程度的兼容C++做出了不懈的努力;可是我觉得他要超越java语言还需要做得更简洁化;



让使用者通过使用来完成某些功能,而不是在语言级别添加对某些具体功能的支持;

C#有点剑走偏锋了!



原文转自:http://www.ltesting.net