C与C++的共性、C与Java的共性、C++与 Java共性。请详细的分析一下。谢谢!!

作者&投稿:宋邵 (若有异议请与网页底部的电邮联系)
详细的比较一下Java和C/C++的优劣~

Java 是由 C++发展而来的,保留了 C++的大部分内容,其编程方式类似于 C++。但 Java 的句法更清晰、规模更小、更易学。Sun 公司对多种程序设计语言进行了深入研究,并摒弃了其他语言的不足之处,最终退出了 Java。正是这样,Java 从根本上解决了 C++的固有缺陷,形成了一种新的完全面向对象的语言。Java 和 C/C++的相似之处多于不同之处,有 C 基础的读者,学习 Java 会更容易。相比较而言,Java 的编程环境更为简单。
刚开始的时候我们也搞不清这些概念,不过后来就慢慢清晰了,首先和大家谈谈Java和js的区别,最简单的区别就是一个是后端,一个是前端。

java是纯面向对象语言,javascrip其实和Java是完全不同的东西,他以前也不叫JavaScript,叫做etscape Navigator,据说是为了搭载Java的顺分车才改名叫js的,因为当时Java很火。

JavaScript 是一种“脚本”,它直接把代码写到 HTML中,浏览器读取它们的时候才进行编译、执行。Java,是嵌在网页中,而又有自己独立的运行窗口的小程序。而且JavaScript 是动态类型语言,而 Java 是静态类型语言

让我们在来看看Java和c语言的区别,首先Java是面向对象的在里面,而C是完全面向过程的。Java可以跨平台,不同的操作系统都可以通过JVM来解释Java程序,而c语言的有些指令只在某些操作系统中才能执行。

那么js和c语言的区别在哪里呢?JavaScript是嵌入式脚本语言,可以直接插入网页或者以单独文件的形式引入网页。C语言是编译型语言,编写完毕后需要调试、编译,编译后为可执行文件,可独立运行。

深圳远标为你解答:
java与C++均继承自C语言。
同:
1、基础语法相同。
不同:
1、java是全封闭的(必须全部封装在类中),C++是半封闭的(可不全放在类中)。
2、java中foreach语法的写法与C++不同。
3、Java中有明确的接口声明语法
4、java中对类的访问权限比C++多(只有3种)
5、java利用gc自动清除堆内容,C++申请堆后要自己手动清除
6、java不允许多继承,只能透过接口模拟多重继承,C++可随意虚继承(解决多继承冲突问题)
7、java中,我没有看到重载operator。

建议:还是不要偷懒跳内容,避免改版时新增的内容与C++的有不同,产生误解,毕竟基础语法的阅读是非常高效,且只占很短的章节的。例如1.5时java没有ENUM。重点是学习指针。

C语言:
目前最著名、最有影响、应用最广泛的windows、linux和UNIX三个操作系统都是用C语言编写的。0S是计算机系统(由软硬件两个子系统构成)的核心和灵魂,它是软件中最庞大最复杂的系统软件。既然如此庞大复杂的0S都可以用c语言编写,从狭义而言,还有什么系统软件和应用软件不能用c语言编写呢?由此可以肯定的说,c语言是一门十分优秀而又重要的语言。
c语言程序设计是过程性程序设计语言,它的发展贯穿了计算机发展的历程,它蕴含了程序设计的基本思想,囊括了程序设计的基本概念,所以它是理工科高等院校的一门基础课程。
从市面上有关c语言的书籍和高等院校采用的教材来看,它们有一个共性,那就是:脱离了实际应用(全是小打小闹的小例子),纯粹的过程性程序设计,没有软件工程思想的体现,没有一定程序设计风格,仅仅是为了让大家明白什么是c语言而已。
高等院校开设c语言程序设计的目的是让学生对程序设计有个入门,有个直观的理解,同时为其他后续课程作铺垫。

C++:
C++语言是在C语言的基础是扩展而成的.所以两种语言的基本语法和语义是相同。C++中加入了面向对程序设计(OOP)的特征。
下面的三个主要性质刻划OOP语言的特点:
封装性:把一个数据结构同操作的函数(行为或方法)组合在一起。封装性是借助于一种新的结构和数据类型机制——类实现的。
继承性:建立一个新的派生类,它从一个或多个先前定义的基类中继承函数和数据,而且可能重新定义或加进新的数据行为,这样就建立了类的层次。
多态性:给行为取一个名字或符号,它共享一个类的层次,在这个层次中的每个类都以适合自己的方式实现这个行为。

C#:
C#(读做 "C sharp",中文译音“夏普”)是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,并定于在微软职业开发者论坛(PDC)上登台亮相.C#是微软公司研究员Anders Hejlsberg的最新成果.C#看起来与Java有着惊人的相似;它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的过程.但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角.

Java:
Java是一种可以编写跨平台应用软件的面向对象的程序设计语言,由升阳(太阳微电子,Sun Microsystems)公司的James Gosling等人于1990年代初开发的.具有以下特征的高级程序语言:
简单 面向对象 可分布 可解释 强壮 安全性 结构化 轻便 功能强大 多线程 动态...
Java既可以被编译,也可以被解释。通过编译器,可以把Java 程序翻译成一种中间代码 - 称为字节码 - 可以被Java解释器 解释的独立于平台的代码。通过解释器,每条Java字节指令被 分析,然后在计算机上运行。只需编译一次,程序运行时解释执行。

我认为 学习java 和 c# 要强悍的电脑

学习 c、c++ 要强悍的大脑

最为最古老的语言 c 几乎和 汇编是等同的

java c#这种高级语言 是为了满足市场 软件需求方便与软件开发速度的 语言

java c# 在与开发效率 和 不需要程序员有多强悍的 大脑

c这一内的低级语言 需要程序员的逻辑能力强才行

C语言与C++的区别有很多: 1,全新的程序程序思维,C语言是面向过程的,而C++是面向对象的。 2,C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C++中的API是对Window系统的大多数API有机的组合,是一个集体。但你也可能单独调用API。 3,特别是C++中的图形处理,它和语言的图形有很大的区别。C语言中的图形处理函数基本上是不能用在中C++中的。C语言标准中不包括图形处理。 4,C和C++中都有结构的概念,但是在C语言中结构只有成员变量,而没成员方法,而在C++中结构中,它可以有自己的成员变量和成员函数。但是在C语言中结构的成员是公共的,什么想访问它的都可以访问;而在VC++中它没有加限定符的为私有的。 4,C语言可以写很多方面的程序,但是C++可以写得更多更好,C++可以写基于DOSr程序,写DLL,写控件,写系统。 5,C语言对程序的文件的组织是松散的,几乎是全要程序处理;而c 对文件的组织是以工程,各文件分类明确。 6,C++中的IDE很智能,和VB一样,有的功能可能比VB还强。 7,C++对可以自动生成你想要的程序结构使你可以省了很多时间。有很多可用的工具如加入MFC中的类的时候,加入变量的时候等等。 8,C++中的附加工具也有很多,可以进行系统的分析,可以查看API;可以查看控件。 9,调试功能强大,并且方法多样。 希望采纳 下面是C,C++,C#的介绍 c语言 C语言是一种面向过程的计算机程序设计语言。最初为unix而生。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。 C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。 常用的C语言IDE(集成开发环境)有Microsoft Visual C++,Borland C++,Watcom C++ ,Symantec C/C++,Borland C++ Builder,Borland C++3.1 for DOS,Watcom C++11.0 for DOS,Optima ,GNU DJGPP C++,Lccwin32 C Compiler 3.1,Zortech C/C++,Microsoft C,High C,Turbo C等等...... C++C++语言这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,它是一种使用非常广泛的计算机编程语言。C 是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。 美国AT&T贝尔实验室的本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)博士在20世纪80年代初期发明并实现了C (最初这种语言被称作“C with Classes”)。一开始C 是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多重继承(multiple inheritance)、模板(template)、异常(exception)、RTTI、名字空间(name space)逐渐被加入标准。1998年国际标准组织(ISO)颁布了C 程序设计语言的国际标准ISO/IEC 14882-1998。C 是具有国际标准的编程语言,通常称作ANSI/ISO C 。1998年是C 标准委员会成立的第一年,以后每5年视实际需要更新一次标准,下一次标准更新将是在2009年,目前我们一般称该标准C 0x。遗憾的是,由于C 语言过于复杂,以及他经历了长年的演变,直到现在(2004年)只有少数几个编译器完全符合这个标准(这么说也是不完全正确的,事实上,至今为止没有任何一款编译器完全支持ISO C )。 另外,就目前学习C 而言,可以认为他是一门独立的语言;他并不依赖C语言,我们可以完全不学C语言,而直接学习C 。根据《C 编程思想》(Thinking in C )一书所评述的,C 与C的效率往往相差在正负5%之间。所以有人认为在大多数场合C 完全可以取代C语言(然而我们在单片机等需要谨慎利用空间、直接操作硬件的地方还是要使用C语言)。 C# C#(读做 "C sharp",中文译音“夏普”)是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,并定于在微软职业开发者论坛(PDC)上登台亮相.C#是微软公司研究员Anders Hejlsberg的最新成果.C#看起来与Java有着惊人的相似;它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的过程.但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角. 在本文中,我将考察创建一种新计算机语言的一般动机,并将特别指明是什么原因导致了C#的出现.然后我将介绍C#和它与Java,c,c 的相似之处.其次我将讨论一些存在于Java和C#之间的高层次的,和基础的差别.我将以衡量在用多种语言开发大型应用程序的时候所需的知识(或者对这种知识的缺乏程度)来结束本文,而这正是.NET和C#的一个主要战略.目前,C#和.NET还只能以C#语言规则,以及Windows 2000的一个"d预览版本",还有MSDN上迅速增多的文档集子的形式获得(还没有最终定型). 微软c#语言定义主要是从C和C 继承而来的,而且语言中的许多元素也反映了这一点.C#在设计者从C 继承的可选选项方面比Java要广泛一些(比如说structs),它还增加了自己新的特点(比方说源代码版本定义).但它还太不成熟,不可能挤垮Java.C#还需要进化成一种开发者能够接受和采用的语言.而微软当前为它的这种新语言大造声势也是值得注意的.目前大家的反应是:"这是对Java的反击." C#更象Java一些,虽然微软在这个问题上保持沉默.这也是意料中的事情,我觉得,因为Java近来很成功而使用Java的公司都报告说它们在生产效率上比C 获得了提高. Java所带来的巨大影响和大家对它的广泛接受已经由工作于这种语言和平台之上的程序员数量明显的说明了(估计世界范围内共有两百五十万程序员使用Java).由这种语言写成的应用程序的数量是令人惊讶的并已经渗透了每一个级别的计算,包括无线计算和移动电话(比如日本发明的Java电话).C#能够在用户领域获得这样的礼遇吗?我们必须等待并观望,就象已经由SSI公司的CEO和主席Kalpathi S. Suresh指出来的那样,"我发现所有这些都是渐进的.如果C#不存在,我们总能回到Java或C和C .这些都不完全是新技术;它们在更大的意义上来说只是大公司制造的市场噱头.我们必须给他们时间安顿下来看看这些是不是真的对IT工业有什么影响."

这个是我很早之前学习到“多态”时候整理的笔记。
送你了!希望对你有用!

Java的多态性

面向对象编程有三个特征,即封装、继承和多态。

封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据。

继承是为了重用父类代码,同时为实现多态性作准备。那么什么是多态呢?

方法的重写、重载与动态连接构成多态性。Java之所以引入多态的概念,原因之一是它在类的继承问题上和C++不同,后者允许多继承,这确实给其带来的非常强大的功能,但是复杂的继承关系也给C++开发者带来了更大的麻烦,为了规避风险,Java只允许单继承,派生类与基类间有IS-A的关系(即“猫”is a “动物”)。这样做虽然保证了继承关系的简单明了,但是势必在功能上有很大的限制,所以,Java引入了多态性的概念以弥补这点的不足,此外,抽象类和接口也是解决单继承规定限制的重要手段。同时,多态也是面向对象编程的精髓所在。

要理解多态性,首先要知道什么是“向上转型”。

我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类。我可以通过

Cat c = new Cat();
实例化一个Cat的对象,这个不难理解。但当我这样定义时:

Animal a = new Cat();
这代表什么意思呢?

很简单,它表示我定义了一个Animal类型的引用,指向新建的Cat类型的对象。由于Cat是继承自它的父类Animal,所以Animal类型的引用是可以指向Cat类型的对象的。那么这样做有什么意义呢?因为子类是对父类的一个改进和扩充,所以一般子类在功能上较父类更强大,属性较父类更独特,

定义一个父类类型的引用指向一个子类的对象既可以使用子类强大的功能,又可以抽取父类的共性。

所以,父类类型的引用可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,它是无可奈何的;

同时,父类中的一个方法只有在在父类中定义而在子类中没有重写的情况下,才可以被父类类型的引用调用;

对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将会调用子类中的这个方法,这就是动态连接。

看下面这段程序:

class Father{
public void func1(){
func2();
}
//这是父类中的func2()方法,因为下面的子类中重写了该方法
//所以在父类类型的引用中调用时,这个方法将不再有效
//取而代之的是将调用子类中重写的func2()方法
public void func2(){
System.out.println("AAA");
}
}

class Child extends Father{
//func1(int i)是对func1()方法的一个重载
//由于在父类中没有定义这个方法,所以它不能被父类类型的引用调用
//所以在下面的main方法中child.func1(68)是不对的
public void func1(int i){
System.out.println("BBB");
}
//func2()重写了父类Father中的func2()方法
//如果父类类型的引用中调用了func2()方法,那么必然是子类中重写的这个方法
public void func2(){
System.out.println("CCC");
}
}

public class PolymorphismTest {
public static void main(String[] args) {
Father child = new Child();
child.func1();//打印结果将会是什么?
}
}
上面的程序是个很典型的多态的例子。子类Child继承了父类Father,并重载了父类的func1()方法,重写了父类的func2()方法。重载后的func1(int i)和func1()不再是同一个方法,由于父类中没有func1(int i),那么,父类类型的引用child就不能调用func1(int i)方法。而子类重写了func2()方法,那么父类类型的引用child在调用该方法时将会调用子类中重写的func2()。

那么该程序将会打印出什么样的结果呢?

很显然,应该是“CCC”。

对于多态,可以总结它为:

一、使用父类类型的引用指向子类的对象;

二、该引用只能调用父类中定义的方法和变量;

三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)

四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。

****************************************************************************************************************************

多态详解(整理)2008-09-03 19:29多态是通过:
1 接口 和 实现接口并覆盖接口中同一方法的几不同的类体现的
2 父类 和 继承父类并覆盖父类中同一方法的几个不同子类实现的.

一、基本概念

多态性:发送消息给某个对象,让该对象自行决定响应何种行为。
通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用。

java 的这种机制遵循一个原则:当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法。

1. 如果a是类A的一个引用,那么,a可以指向类A的一个实例,或者说指向类A的一个子类。
2. 如果a是接口A的一个引用,那么,a必须指向实现了接口A的一个类的实例。

二、Java多态性实现机制

SUN目前的JVM实现机制,类实例的引用就是指向一个句柄(handle)的指针,这个句柄是一对指针:
一个指针指向一张表格,实际上这个表格也有两个指针(一个指针指向一个包含了对象的方法表,另外一个指向类对象,表明该对象所属的类型);
另一个指针指向一块从java堆中为分配出来内存空间。

三、总结

1、通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用。

DerivedC c2=new DerivedC();
BaseClass a1= c2; //BaseClass 基类,DerivedC是继承自BaseClass的子类
a1.play(); //play()在BaseClass,DerivedC中均有定义,即子类覆写了该方法

分析:
* 为什么子类的类型的对象实例可以覆给超类引用?
自动实现向上转型。通过该语句,编译器自动将子类实例向上移动,成为通用类型BaseClass;
* a.play()将执行子类还是父类定义的方法?
子类的。在运行时期,将根据a这个对象引用实际的类型来获取对应的方法。所以才有多态性。一个基类的对象引用,被赋予不同的子类对象引用,执行该方法时,将表现出不同的行为。

在a1=c2的时候,仍然是存在两个句柄,a1和c2,但是a1和c2拥有同一块数据内存块和不同的函数表。

2、不能把父类对象引用赋给子类对象引用变量

BaseClass a2=new BaseClass();
DerivedC c1=a2;//出错

在java里面,向上转型是自动进行的,但是向下转型却不是,需要我们自己定义强制进行。
c1=(DerivedC)a2; 进行强制转化,也就是向下转型.

3、记住一个很简单又很复杂的规则,一个类型引用只能引用引用类型自身含有的方法和变量。
你可能说这个规则不对的,因为父类引用指向子类对象的时候,最后执行的是子类的方法的。
其实这并不矛盾,那是因为采用了后期绑定,动态运行的时候又根据型别去调用了子类的方法。而假若子类的这个方法在父类中并没有定义,则会出错。
例如,DerivedC类在继承BaseClass中定义的函数外,还增加了几个函数(例如 myFun())

分析:
当你使用父类引用指向子类的时候,其实jvm已经使用了编译器产生的类型信息调整转换了。
这里你可以这样理解,相当于把不是父类中含有的函数从虚拟函数表中设置为不可见的。注意有可能虚拟函数表中有些函数地址由于在子类中已经被改写了,所以对象虚拟函数表中虚拟函数项目地址已经被设置为子类中完成的方法体的地址了。

4、Java与C++多态性的比较

jvm关于多态性支持解决方法是和c++中几乎一样的,
只是c++中编译器很多是把类型信息和虚拟函数信息都放在一个虚拟函数表中,但是利用某种技术来区别。

Java把类型信息和函数信息分开放。Java中在继承以后,子类会重新设置自己的虚拟函数表,这个虚拟函数表中的项目有由两部分组成。从父类继承的虚拟函数和子类自己的虚拟函数。
虚拟函数调用是经过虚拟函数表间接调用的,所以才得以实现多态的。

Java的所有函数,除了被声明为final的,都是用后期绑定。

四. 1个行为,不同的对象,他们具体体现出来的方式不一样,
比如: 方法重载 overloading 以及 方法重写(覆盖)override
class Human{
void run()
}
class Man extends Human{
void run()
}
这个时候,同是跑,不同的对象,不一样(这个是方法覆盖的例子)
class Test{
void out(String str)
void out(int i)
}
这个例子是方法重载,方法名相同,参数表不同

ok,明白了这些还不够,还用人在跑举例
Human ahuman=new Man();
这样我等于实例化了一个Man的对象,并声明了一个Human的引用,让它去指向Man这个对象
意思是说,把 Man这个对象当 Human看了.

比如去动物园,你看见了一个动物,不知道它是什么, "这是什么动物? " "这是大熊猫! "
这2句话,就是最好的证明,因为不知道它是大熊猫,但知道它的父类是动物,所以,
这个大熊猫对象,你把它当成其父类 动物看,这样子合情合理.

这种方式下要注意 new Man();的确实例化了Man对象,所以 ahuman.run()这个方法 输出的 是 "男人在跑 "

如果在子类 Man下你 写了一些它独有的方法 比如 eat(),而Human没有这个方法,

在调用eat方法时,一定要注意 强制类型转换 ((Man)ahuman).eat(),这样才可以...

对接口来说,情况是类似的...

实例:

package domatic;

//定义超类superA
class superA {
int i = 100;

void fun(int j) {
j = i;
System.out.println("This is superA");
}
}

// 定义superA的子类subB
class subB extends superA {
int m = 1;

void fun(int aa) {
System.out.println("This is subB");
}
}

// 定义superA的子类subC
class subC extends superA {
int n = 1;

void fun(int cc) {
System.out.println("This is subC");
}
}

class Test {
public static void main(String[] args) {
superA a = new superA();
subB b = new subB();
subC c = new subC();
a = b;
a.fun(100);
a = c;
a.fun(200);
}
}
/*
* 上述代码中subB和subC是超类superA的子类,我们在类Test中声明了3个引用变量a, b,
* c,通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用。也许有人会问:
* "为什么(1)和(2)不输出:This is superA"。
* java的这种机制遵循一个原则:当超类对象引用变量引用子类对象时,
* 被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,
* 但是这个被调用的方法必须是在超类中定义过的,
* 也就是说被子类覆盖的方法。
* 所以,不要被上例中(1)和(2)所迷惑,虽然写成a.fun(),但是由于(1)中的a被b赋值,
* 指向了子类subB的一个实例,因而(1)所调用的fun()实际上是子类subB的成员方法fun(),
* 它覆盖了超类superA的成员方法fun();同样(2)调用的是子类subC的成员方法fun()。
* 另外,如果子类继承的超类是一个抽象类,虽然抽象类不能通过new操作符实例化,
* 但是可以创建抽象类的对象引用指向子类对象,以实现运行时多态性。具体的实现方法同上例。
* 不过,抽象类的子类必须覆盖实现超类中的所有的抽象方法,
* 否则子类必须被abstract修饰符修饰,当然也就不能被实例化了
*/
以上大多数是以子类覆盖父类的方法实现多态.下面是另一种实现多态的方法-----------重写父类方法

1.JAVA里没有多继承,一个类之能有一个父类。而继承的表现就是多态。一个父类可以有多个子类,而在子类里可以重写父类的方法(例如方法print()),这样每个子类里重写的代码不一样,自然表现形式就不一样。这样用父类的变量去引用不同的子类,在调用这个相同的方法print()的时候得到的结果和表现形式就不一样了,这就是多态,相同的消息(也就是调用相同的方法)会有不同的结果。举例说明:
//父类
public class Father{
//父类有一个打孩子方法
public void hitChild(){
}
}
//子类1
public class Son1 extends Father{
//重写父类打孩子方法
public void hitChild(){
System.out.println("为什么打我?我做错什么了!");
}
}
//子类2
public class Son2 extends Father{
//重写父类打孩子方法
public void hitChild(){
System.out.println("我知道错了,别打了!");
}
}
//子类3
public class Son3 extends Father{
//重写父类打孩子方法
public void hitChild(){
System.out.println("我跑,你打不着!");
}
}

//测试类
public class Test{
public static void main(String args[]){
Father father;

father = new Son1();
father.hitChild();

father = new Son2();
father.hitChild();

father = new Son3();
father.hitChild();
}
}
都调用了相同的方法,出现了不同的结果!这就是多态的表现!

****************************************************************************************************************************


它们的关系很简单,简单的说:
c是面向过程语言,c++与java都是由c发展进化来的面向对象语言,c++与java大同小异


GNU C++和我们通常所说的C++有什么区别
而Visual c++和GNU C++都是编译器,GNU C++适用于Linux系统 Visual c++适用于Windows系统 一般的编译器除了稳定性之外,比较重要的指标是看其对于C\/C++标准的兼容性 现在VS2008对于C\/C++标准的兼容性非常高 但是对于一般的使用者而言,这些差异是比较微不足道的,所以,一般使用编译器时,90%以上的语法...

我c语言刚学了入门能不能学c++阿?
你的这个问题的答案并不简单,虽然说C语言和C++语言两者都是计算机语言,多多少少有共性特征,但也有很多不同之处。C++语言是在C语言的基础上发展而来的,它继承了C语言的很多特性,同时还添加了一些新的东西,比如面向对象编程等。因此,如果一个人只学了C语言的基础知识,转学C++语言可能会面临到一些...

GNU C++和我们通常所说的C++有什么区别
区别有很多地方..平台:GNU C++ 是linux平台上的. Visual C++是WINDOWS上的.库:GNU C++使用linux上的API, VC++使用WIN API.C++语法有微小的差别:这里仅仅拿VC6来说明, VC6由于某种原因, 不能很好支持C++新标准, 而GNU C++是完全支持的.共性:都完全支持C++标准库:STL,C Runtime library.因此,仅...

C语言和C++编写软件,哪儿个比较好学,哪儿个应用比较广
指针是C语言的一大特色,可以说是C语言优于其它高级语言的一个重要原因。就是因为它有指针,可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不安全的因素。C++在这方面做了很好的改进,在保留了指针操作的同时又增强了安全性。Java取消了指针操作,提高了安全性,适合初学者使用。C++应用较...

C++中的类究竟有什么用?
类是对某一类对象的抽象;而对象是某一种类的实例,因此,类和对象是密切相关的。没有脱离对象的类,也没有不依赖于类的对象。什么是类 类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的操作封装在一起的集合体。这有点像C语言中的结构,唯一不同的就是结构没有定义所说的“数据...

我觉得C++语言很复杂,特别是类,怎么办?
这里的类理解起来和现实世界的“类”一样,有共性才能归为一类。不过,在C++中,这些共性分为静态的属性(由数据成员表示)和动态的行为方法(由成员函数实现),这是类的组成。当然,在定义的时候还要注意它的可访问性,一般来说,数据成员是private(私有的),成员函数是public(公共的)。再就是类的...

Objective-C 和 C++ 的区别有哪些?为什么苹果会选择前者
Objective C基本上是在C + Smalltalk基础上衍生出来的,C++就是C++。除了都是从C语言分化出来的以外,完全没有任何共性。最大的区别就是Objective C的成员函数调用是基于动态绑定的,类本身并没有限制对象可以有什么函数。相对于C++类会规定好成员有什么函数。这使得Objective C的灵活性很大,但是执行效率...

c++中变量标识符命名规则
标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音来命名。程序中的英文单词一般不会太复杂,用词应当准确。例如不要把CurrentValue写成NowValue。【规则3-1-2】标识符的长度应当符合“min-length && max-information”原则。几十年前老ANSI C规定名字不准超过6个字符,现今的C++\/C不...

求c\/c++编程心得,就是自己感觉比较好的地方和技巧
当然,从这个话题,我们是不是可以得出一个结论,其实写程序的方法本身,编程的内功本身,其实是没有什么语言特性的,C、C++、Java、PHP、Python。。。是不是都用的同一种方法在做事情?因此,我这里提出,修炼编程的内功,是学习抽象能力和描述能力,与语言无关,换而言之,从任何一门语言入门,都可以...

下列关于C++类的叙述中,错误的是( )。
【答案】:C 友元机制允许一个类将对其非公有成员的访问权授予指定的函数或类,类和类之间可以互为友元关系,选项A正确;类代表某一种事物(对象)的共性和特征,用于描述事物的属性(数据成员)和对事物的操作(成员函数),选项B正确;类和类之间可以通过封装而具有相对独立性,选项D正确;类和类之 间的...

广安市13150634709: java与c语言还有c++的相同之处 -
诏昆皮炎: c差不多是C++的前身,c是面向过程的;c++在c的基础上变成主要是面向对象的,到java就是纯面向对象的了...他们的具体区别可以去网上收一下 ,给你复制粘贴就没有意思了.希望对你有所帮助

广安市13150634709: JAVA和C++有什么相同之处??? -
诏昆皮炎: 个人感觉会较为困难.如果由C++到JAVA的难度是100的话,那么由JAVA到C++的难度会是200.除非你有C的基础,否则真的很有难度.呵呵. 转别人的一篇文章: JAVA和C++都是面向对象语言.也就是说,它们都能够实现面向对象思想(封...

广安市13150634709: C++和JAVA语言有的相同点和不同点
诏昆皮炎: Java采用了C及C++的语法格式,对于学习过C及C++的程序设计者来说,学习Java将有可能很轻松.但是,如果仔细检查Java语言的许多细节,就会发现Java取消了不少C及C++的特性,并且加入了一些新的特性.这些差异包括: 不再有指针...

广安市13150634709: JAVA语言和C/C++语言有什么异同? -
诏昆皮炎: Java 是由 C++发展而来的,保留了 C++的大部分内容,其编程方式类似于 C++.但 Java 的句法更清晰、规模更小、更易学.Sun 公司对多种程序设计语言进行了深入研究,并摒弃了其他语言的不足之处,最终退出了 Java.正是这样,Java 从...

广安市13150634709: C语言和JAVA有什么共同点么? -
诏昆皮炎: C语言:结构化编程语言,速度快,效率高(仅次于汇编语言的速度) C++语言: 在兼容C语言的基础上扩展了面向对象的支持,属于不纯的面向对象语言(比如定义一个整型可以这样写 int i = 0; 或者 int i = new int(0);) JAVA语言:针对C++面...

广安市13150634709: Java、C、c++的具体的相同之处和不同之处有哪些?我想要详细的解答,O(∩ - ∩)O谢谢 -
诏昆皮炎: java与c/c++最大之不同在于运行机制不同 java程序设计语言是解释型语言,程序的运行需要jvm(java虚拟机)的支持,java源代码经过java编译器编译完成之后是字节码,而不是二进制代码,这些字节码需要经过jvm解释成可以机器可以运行的二进制代码.而c/c++是编译型语言,源代码经过编译器编译,链接器链接之后,成为可执行的二进制代码. java/c++与c语言的不同之处在于,前者是面向对象的程序设计语言,后者是面向过程的! 相同之处在于他们都是高级程序设计语言!而且语法也极为相近!

广安市13150634709: C语言与C++与JAVA的区别 -
诏昆皮炎: Java程序中的每个变量要么是基本数据类型(boolean, char, byte, short, int, long, float, double),要么是对对象的引用 C++有许多种基本类型,额外还有struct, union, enum, 数组和指针,C++指针可以指向对象,也可以不指向对象 Java没有枚...

广安市13150634709: c++与java的异同 -
诏昆皮炎: 异:1.C++ 和java相比,只有标准的容器和算法,它的标准里没有网络,GUI以及应用框架这些内容,因此需要第三方的库来支持.而java的标准库包含的内容很丰富,有GUI支持,网络支持,多线程支持,以及完整的应用框架.2.C++中有指针...

广安市13150634709: 请问c++和c#以及java之间有什么相同点、不同点.c#吸收了java和c++语言的哪些优点?
诏昆皮炎: 简单地说,它们不是一种语言,语法有差别,编程时具体用到的类库或者函数库也不一样. 虽然它们不是一种语言,不过它们却也有所联系.广泛地说,C可以看作其他三种语言的源语言,因为其他三种语言几乎都是从C而来的,无论从数据类...

广安市13150634709: Java与C,C++的相似跟不同区别之处 -
诏昆皮炎: 首先那些基本句法和基本数据类型大致是相似的.控制结构和循环结构for,while,if,switch结构,包括变量的声明等等都累死. c语言是纯粹的面向过程来的,没有涉及到封装.说具体点就是没有“类和对象”的概念; c++既可以面向过程也可以面...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网