欢迎来到天天文库
浏览记录
ID:19669762
大小:418.55 KB
页数:24页
时间:2018-10-04
《08java特征之继承与多态》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java基础---继承中软无锡实训基地进度目标了解什么是继承和继承如何使用。掌握声明成员变量的修饰符。熟练掌握方法的重写和重载。什么是继承(1)在日常生活中,经常遇到如下问题。有一辆自行车,自行车有颜色和型号大小之分,而公路赛车也有颜色和型号大小之分,公路赛车多了一项速度的优势。自行车有的东西公路赛车全都有,而公路赛车有的东西自行车不一定有,它们相同地方有很多。在Java中,对于这种情况下就采用继承来完成这个功能。【范例8-1】通过示例代码8-1来理解什么是继承。示例代码8-101//这是一个类,表述的是一个自行车02publicclassbike03{04
2、publicStringcolor;//自行车的颜色05publicintsize;//自行车的大小,即型号06}0708//这是一个类,表述的是一个公路赛类09pubicclassracing_cycle10{11publicStringcolor;//自行车的颜色12publicintsize;//自行车的大小,即型号13publicStringspeed;//公路赛车的速度14}什么是继承(2)下面就来使用继承来简化上面的程序。01//这是一个类,表述的是一个自行车02publicclassbike03{04publicStringcolor;//自行
3、车的颜色05publicintsize;//自行车的大小,即型号06}07//这是一个类,表述的是一个公路赛车,它继承于自行车08pubicclassracing_cycleextendsbike09{10publicStringspeed;//公路赛车的速度11}继承是为了让代码重复使用,提高效率,在此基础上衍生出更多的新类。继承是面向对象编程的特点,没有继承就不是面向对象编程,而是面向过程了。Java提供了单一继承,通过接口可以实现多重继承。本节要说明什么是继承,继承有那些特点。类的继承(1)在Java中,被继承的类叫超类(superclass),继承超
4、类的类叫子类(subclass)。因此,子类是超类的一个功能上的扩展,它继承了超类定义的所有属性和方法,并且添加了特有功能方法。首先举一个典型例子来说明继承有什么特点,然后再结合代码学习。有一对爷俩,爸爸和儿子,爸爸的眼睛是单眼皮,个子很高,头发很好,皮肤很黑,而儿子同样有他爸爸的一些特征,但是儿子的皮肤很白,双眼皮,戴眼镜,在外人看来他们是爷俩。儿子具有爸爸的所有特征,但是儿子的皮肤很白和戴眼睛这些是儿子自己所特有的,也是和爸爸不一样的地方。这个小例子正是日常生活里常见的。换到Java里,类与类之间的关系,可以看成倒置的金字塔,爸爸在上面,儿子在下面。爸爸
5、可能有多个儿子,但是一个儿子只能有一个爸爸,这在日常生活里也是如此。类的继承(2)本节学习了继承的使用,下面对其内容做如下总结。通过继承定义类,可以简化类的定义,让所需要的功能用相应的子类去定义和实现。Java是单继承的,子类可以有很多,父类只能有一个。上面的例子,如果加一个Friend类,Son只能继承自Father,要么继承Friend,不能同时继承Father和Friend。Java的继承是多层继承的,是一个类可以有很多子类,而子类下面又可以有很多子类。父类里的属性和方法可以让子类所有,父类里的属性和方法可以使子类同样拥有,而子类的不能调用父类的方法和
6、属性,子类的无参构造器默认是调用的父类的无参构造器。父类没有定义一个无参的构造器,那么编译器就默认生成一个无参的构造器,也可以在子类构造器里显示使用super方法调用父类构造器,super方法里写几个参数就可以表示调用的是父类的哪一个构造器。一般情况下,定义了一个有参的构造器,就应该定义一个无参的构造器。继承的语法类的继承是通过Java保留的关键字extends来修饰的,通过extends的关键字表明前者具备后者的公共的成员变量和方法,在具备了所有的公共的成员变量和方法后,本身还能定义一些特有的成员变量和方法。基本语法如下所示。class类名extends父
7、类名称【范例8-6】下面是使用继承的程序。示例代码8-601publicclassFather02{03publicStringname;//父亲的名字04publicintage;//父亲的年龄05publicStringeye;//父亲眼睛的样子06publicStringheight;//父亲的身高07publicStringcutis;//父亲的皮肤的颜色08}0910publicclassSonextendsFather//Son类继承与Father类11{12publicStringspectacleframe;//这个属性是儿子所特有的表示儿子
8、是否带眼镜13}修饰符(1)修饰符是修饰的当前成员变
此文档下载收益归作者所有