下载此文档

第五讲面向对象程序设计方案思想——继承(修改).doc


文档分类:IT计算机 | 页数:约16页 举报非法文档有奖
1/16
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/16 下载此文档
文档列表 文档介绍
肅第五讲面向对象程序设计思想(3)——继承蒃引子莀在评测成绩程序里,我们已经知道考试课类和考查课类都继承了课程类。“继承”的定义是:特殊类的对象拥有其一般类的全部属性与服务。在JAVA中,特殊类称作“子类”或“派生类”,一般类称作“超类”、“基类”或者“父类”。例如鸽子是鸟的子类,因此所有“鸟”该有的特性,鸽子也都有。、两只麻雀、三只乌鸦,我们问树上有几只鸟,大家会毫不犹豫地说六只。因为鸽子、麻雀、乌鸦都是鸟的子类,因此我们可以用“鸟”这个超类来统称它们,也就是超类的引用可以指向子类的对象。但反过来就不成立了,子类的引用不能指向超类的对象,毕竟鸟不是鸽子。由此,我们可以得到下面的结论:薃1、子类对象可以被视作是其超类的一个对象;螁2、超类对象不能被视作是其子类的一个对象;羇3、超类的引用可以指向其子类的对象;螃4、子类的引用不可以指向其超类的对象。蕿再进一步的考虑,如果上面的六只鸟都叫了起来,“叽叽”“咕咕”却并不相同。例如下面代码:袅鸟a=new鸽子();薆鸟b=new麻雀();蒂鸟c=new乌鸦();();();();芁虽然都是叫,但各有不同。因为a、b、c所表示的对象分别是鸽子、麻雀和乌鸦它们虽同属于鸟类,但各自有各自的实现。。子类通过继承可以获得超类的所有功能,然后更具自生的特点加以扩展和改造,就能以简单的程序代码来实现功能强大功能了。《荀子·劝学篇》中所说的“青出于蓝而胜于蓝”正好为我们解释了继承的意义。螅在UML中,类的继承关系也称为泛化关系。泛化和继承表示的是同一种关系,只是方向不同。我们说“子类继承超类”或者说“超类泛化为子类”。在UML的类图中使用空心三角的箭头()表示继承,箭头指向超类。例如上文中鸟、鸽子、麻雀和乌鸦的类图如下:,只要在子类的申明中使用“extends”关键字来注明其超类就可以了。例如:肂class鸟衿{蒈 void叫(){}袅}袁class鸽子extends鸟罿{薅 void叫(){}莃}。子类不能直接通过方法名调用父类的构造方法,而通过super调用,且位于子类构造方法的首行。羆当子类的某个构造方法没有调用父类的一个构造方法,通过这个构造方法创建对象时,会自动调用父类的缺省构造方法。{莇 //from蒃 protectedGrandPa() 蒂 {膈 ("defaultGrandPa");螈 } //to芅 publicGrandPa(Stringname)膁 {芈 (name);腿 }蚃}芄莈classFatherextendsGrandPa莆{莄 protectedFather()羃 {蒈 ("defaultFather");螆 }膆 publicFather(StringgrandPaName,StringfatherName)螁 {薈 super(grandPaName);膇 (fatherName);薄 }薀}lassSonextendsFather芆{薃 publicSon()螇 {蚅 ("defaultSon");螄 }莂 publicSon(StringgrandPaName,StringfatherName,StringsonName)螇 {肆 super(grandPaName,fatherName);//here蒆 (sonName);肁 }膁 publicstaticvoidmain(String[]args)蒇 {袄 Sons1=newSon();膄 Sons2=newSon("A","B","C");芁 }袈}蚆输出结果袃defaultGrandPa莁defaultFather艿defaultSon肃A蚂B蒁C莅如果将from到to删除,则编译出错螅如果将here行删除,则输出:{薈 publicintvarA=1;蒃 protectedvoidmethodA(){}肁}螀classClassBextendsClassA螅{膅 protectedintvarB=1;螀 publicvoidmeth

第五讲面向对象程序设计方案思想——继承(修改) 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数16
  • 收藏数0 收藏
  • 顶次数0
  • 上传人雾里行舟
  • 文件大小74 KB
  • 时间2019-05-08
最近更新