欢迎来到天天文库
浏览记录
ID:41233094
大小:269.00 KB
页数:36页
时间:2019-08-20
《Java实用教程第9讲继承和多态》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9讲继承和多态9.1组合9.2继承9.3final关键字9.4多态9.5本讲小结Java通过两种方式来实现代码的复用,即组合和继承。组合是指创建新类时,新类中的成员是由现有类的对象组成,这种方式比较直观。而继承是指在现有类的基础上添加新的代码。这两种方式都不会破坏原有代码。9.1组合在创建新类时,可以使用已有类的对象作为新类的成员,当然也可以创建基本数据类型的成员。下面的程序代码展示了组合技术://CompositionDemo.javaclassWheel{intcount;Wheel(intcount){this.count=c
2、ount;}}classDoor{intcount;Door(intcount){this.count=count;}}classEngine{doubledisplacement;Engine(doubledisplacement){this.displacement=displacement;}}9.1组合classCar{Stringname;Wheelwheel=newWheel(4);DoorcarDoor=newDoor(4);EnginecarEngine=newEngine(3.0);Car(Stringname){t
3、his.name=name;}}publicclassCompositionDemo{publicstaticvoidmain(String[]args){Carcar=newCar("宝马X6");System.out.println("车名:"+car.name);System.out.println("排量:"+car.carEngine.displacement);System.out.println("门:"+car.carDoor.count);System.out.println("轮子:"+car.wheel.coun
4、t);}}上述代码中,类Car是由类String、类Wheel、类Door和类Engine组合而成的。9.2继承继承是面向对象程序设计中不可缺少的部分,Java是单根继承,不支持类似C++中的多继承。所以在Java中有一个“祖先”类,名为Object,所有类都直接或间接的继承它,所有对象(包括数组)都实现这个类的方法。9.2.1继承的语法表明“继承”时,使用关键字extends,如:classPerson{}classStudentextendsPerson{}上面程序中类Student继承于Person类,Person类称为父类或基
5、类,Student类称为子类或派生类。而在定义Person类时,并没有为其指定父类,它默认的继承Object类,只不过“extendsObject”可以省略:wclassPersonextendsObject{}子类继承父类时,将得到父类中的所有成员,只是有的成员能够直接使用,有的成员只能间接使用。9.2.2父类的初始化当创建一个子类的对象时,该对象中包含了一个父类的对象。这个存在于子类对象中的父类对象同单独使用父类创建的对象一模一样。而且父类对象要先被初始化,这个初始化的动作是由构造方法来完成的。下面程序代码证明了这一点://Por
6、tableComputer.javaclassElectricalEquipment{ElectricalEquipment(){System.out.println("ElectricalEquipment()");}}classComputerextendsElectricalEquipment{Computer(){System.out.println("Computer()");}}9.2.2父类的初始化publicclassPortableComputerextendsComputer{PortableComputer(){
7、System.out.println("PortableComputer()");}publicstaticvoidmain(String[]args){PortableComputermyPc=newPortableComputer();}}上面程序的输出结果为:ElectricalEquipment()Computer()PortableComputer()}从上面程序的运行结果可以看出,创建子类的对象时,父类的构造方法先被调用,用来初始化包含在子类对象中的父类对象。ElectricalEquipment类和Computer类中只
8、定义了无参构造方法,即创建子类对象中的父类对象时,使用的是父类的无参构造方法。那么能不能使用父类的有参构造方法呢?答案是肯定的.9.2.2父类的初始化关于子类构造方法中调用父类的构造方法的规则,现总结如下:(1)父类没有
此文档下载收益归作者所有