欢迎来到天天文库
浏览记录
ID:6774326
大小:52.50 KB
页数:21页
时间:2018-01-25
《java_c 多态继承比较》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、java_c多态继承比较java_c++多态继承比较.txt等待太久得来的东西多半已经不是当初自己想要的了。一层秋雨一阵凉,一瓣落花一脉香,一样流年自难忘,一把闲愁无处藏。幸福生活九字经:有希望,有事干,有人爱。女人和女人做朋友,要之以绿叶的姿态,同时也要暗藏红花的心机。关于C#,C++,Java在继承,覆盖和多态,抽象类等几个方面的比较归纳。关于C#,C++,Java在继承,覆盖和多态,抽象类等几个方面的比较归纳。C#,C++用visualstudio2005编译通过;java代码用JDK1.4.2
2、编译通过。一、继承中的带参数构造函数=============================C#示例://myClass.csusingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacemyClassclassmyFirst{intvalue_myFirst;publicmyFirst(intf){value_myFirst=f;}}classmySecond:myFirst{intvalue_mySecond;//构造
3、函数传递参数时,采用base关键字,s在base()中不需重新声明类型intpublicmySecond(ints):base(s){value_mySecond=s;}}classProgram{staticvoidMain(string[]args){}}}============================C++示例:#include"stdafx.h"classmyFirst{private:intvalue_myFirst;public:myFirst(intf){value_myFir
4、st=f;}};//继承需要声明继承的方式,此处是publicclassmySecond:publicmyFirst{private:intvalue_mySecond;public://构造函数传递参数时,用基类类名,s基类类名()中不需声明类型intmySecond(ints):myFirst(s){value_mySecond=s;}};int_tmain(intargc,_TCHAR*argv[]){return0;}=============================java示例:pa
5、ckagecom;classmyFirst{intvalue_myFirst;publicmyFirst(intf){value_myFirst=f;}}//继承采用extends关键字classmySecondextendsmyFirst{intvalue_mySecond;publicmySecond(ints){//传递给基类构造函数时,采用super关键字,而且必须是第一条语句。super(s);value_mySecond=s;}}publicclassmyCon{publicstaticv
6、oidmain(String[]args){}}注意:1.注释中给出了三者的不同点。2.另外,C++语法中定义的类后面必须加上分号";"3.访问控制权限public等的格式,C#和java比较类似,C++相差很大。二、方法覆盖与多态C#示例://myClass.csusingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacemyClass{classmyFirst{intvalue_myFirst;publicmyFirs
7、t(intf){value_myFirst=f;}publicvoidf1(){System.Console.WriteLine("myFirst.f1()!");}publicvirtualvoidf2()//virtual也可以提到最前面{System.Console.WriteLine("myFirst.f2()!");}}classmySecond:myFirst{intvalue_mySecond;publicmySecond(ints):base(s){value_mySecond=s;}
8、//使用关键字new覆盖基类中的同名方法publicnewvoidf1()//new也可以提到最前面{System.Console.WriteLine("mySeconde.f1()!");}//error当基类函数myFirst.f1()没有声明为virtual,abstract时不能override!//publicoverridevoidf1()//{//System.Console.WriteLine("mySeconde.f1()!");//}
此文档下载收益归作者所有