您的位置:首页 > 编程语言 > C语言/C++

java和c++在面向对象上有什么区别?

2007-07-29 09:37 597 查看
Ghosts (变化总是会发生的) 于 2001年12月21日11:40:56 星期五 提到:
java在运行时刻可以查询一个类的所有方法和属性,这样使得java的class文件有些类似
组件的感觉,而c++要通过特定的方法(如com)才能查询一个组件的方法。
c++虽然在后面的板本中引入了RTTI,但是不知道支持率如何(似乎不太有人用)。
java的这个特点似的java可以简单的实现Bean,可以在类型转换时检查错误。
另外较常规的差异就是java中没有多继承的概念,而是采用interface的方法,这种方式 JAVA天堂
看起来更完善一点,而且较少引入错误。
☆──────────────────────────────────────☆
gogow (gogow) 于 2001年12月21日15:09:04 星期五 提到:
一个简单的例子:
Java中每个数组都是对象;完全的面向对象!!
☆──────────────────────────────────────☆
CupTea (一杯清茶) 于 2001年12月21日15:26:07 星期五 提到:
关于这方面的内容可以看《thinking in java》的附录部分。
☆──────────────────────────────────────☆
mirrorjj (小镜子~~天之启示) 于 2001年12月22日15:58:03 星期六 提到:
java中所有的方法都是晚绑定的,
除非声明为final,
而c++中只有虚方法才是晚绑定的
☆──────────────────────────────────────☆
xiaohe (三戒) 于 2001年12月22日15:59:56 星期六 提到:
java中的变量名都是对象引用
java默认动态绑定
☆──────────────────────────────────────☆
blCoffee (闭关) 于 2001年12月22日21:37:45 星期六 提到: JAVA天堂
think in java开宗明义第一章:一切都是对象
☆──────────────────────────────────────☆
trope (就怕恐龙逃) 于 2001年12月23日11:02:35 星期天 提到:
我原来叫就怕恐龙不逃,结果被女朋友强行改成就怕恐龙逃了,55555555
特此纪念,关税一篇!!
☆──────────────────────────────────────☆
feifeijs (独立人~解放自己) 于 2001年12月23日11:34:28 星期天 提到:
hahahahahahahahaha
cft
☆──────────────────────────────────────☆
justsoso (及时行乐) 于 2001年12月23日11:41:49 星期天 提到:
呵呵,真是搞笑
你的gf真厉害呀

信区: Java
标 题: Re: 【合集】java和c++在面向对象上有什么区别?(null) , 站内信件
转载某人看法
Java语言和C#的一些区别
Java C#
默认情况下所有成员函数都可以被重载 默认情况下所有成员函数都不可以被重载
用final指出成员函数 不能 被重载 用virtual指出成员函数 可以 被重载
直接改写父类的成员函数 用override重载父类中可以被重载的成员函数

用final指出类不能被继承 用sealed指出类不能被继承
用abstract指出类必须被继承才能实例化 用abstract指出类必须被继承才能实例化
用abstract指出某成员函数必须被改写 用abstract指出某成员函数必须被改写
有(与类)同名的构造函数 有(与类)同名的构造函数和析构函数(~作为前缀)
不支持多继承,用extends表示继承 不支持多继承,用:表示继承
可以用implement实现多个接口,用逗号分隔 可以实现多个接口,同类的继承,用逗号
分隔
接口可以包含域(Field) 接口不能包含域(Field)
可以显式为接口的方法指定public修饰符(虽然不需要) 不能显式地为接口的方法指定
public修饰符
public interface IE extends IC,ID public interface IE:IC,ID
public class B extends A implements IC,ID public class B : A,IC,ID
A,B 都是类,IC,ID都是接口 A,B 都是类,IC,ID都是接口
用final表示常量 用const表示常量
package xxx.yyy.zzz; namespace xxx.yyy.zzz{}
import System.xxx.yyy; using System.xxx.yyy;
StringBuffer StringBuilder
文件名 必须 和public类同名 文件名可以和public类名称不同
由运行时环境管理,使用垃圾收集器 由运行时环境管理,使用垃圾收集器

源代码编译成IL代码 源代码编译成*.class代码
不能重载main方法 可以重载Main方法
switch语句只能处理整数 switch语句还可以处理字符串
没有goto 谨慎地使用goto
instanceof is
无对应操作符 as
有自己的类库 没有自己的类库,共享了.NET的类库
没有枚举类型 enum类型

[b]全文阅读:http://www.javah.net/JAVAjichu/20070510/1003.html[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息