欢迎来到天天文库
浏览记录
ID:48136740
大小:208.50 KB
页数:27页
时间:2020-01-17
《面向对象程序设计-类的继承1.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象程序设计类的继承教师:张立涓本单元教学内容理解继承的基本概念使用extends实现继承类成员的继承规则子类对父类的扩展1、讨论:图所表示的关系2、轮船——客轮的关系示例(共性与个性)3、列举其它的类似关系学生人公司雇员中学生大学生经理普通员工轮船客轮货轮父类(或基类、超类)子类(或派生类)几个实例考察以下例子飞机票:属性:单价、始发站、终点站、航班号、座位号、仓位等级、航空公司。方法:价格查询等。火车票:属性:单价、始发站、终点站、车次、座位号、座位类型。方法:价格查询等。船票:属性:单价、始发站、终点站、轮船
2、号、座位号、座位类型。方法:价格查询等。思考观察P89-91关于飞机票、火车票、客车票、船票类的声明代码冗余度如何?各个类之间有多少重复的代码?类之间的继承关系图示程序演示—父类的声明//父类TicketclassTicket{protecteddoubleprice;//票单价protectedStringstartStation;//始发站protectedStringendStation;//终点站protectedStringseatNum;//座位号publicdoublegetPrice(){returnp
3、rice;}publicStringgetInfo(){return"票价"+price+"始发站"+startStation+"终点站"+endStation;}}我们归纳出所有类的共性,作为父类(Ticket类)的成员变量和成员方法程序演示—类的继承//Ticket类的子类描述飞机票classPlaneTicketextendsTicket{protectedStringflightNum;//航班号protectedStringseatType;//舱位等级protectedbooleanroundTrip;//
4、是否为往返机票protectedStringairlineCompany;//航空公司}继承的语法继承的语法使用关键字extends格式:class子类名extends父类名{}如:classManagerextendsEmpoyee{……}练习继承父类Ticket,完成其他子类(火车票、客车票、船票)的声明成员属性与成员方法的继承规则父类publicdefaultprotectedprivate同一包中子类publicdefaultprotected不被继承类继承具有传递性,即子类继承父类的所有非私有成员,也继承父类
5、的父类直至祖先的所有的非私有成员。子类对父类的扩展子类除了继承父类的成员变量和成员方法外,还可以添加新的成员变量和成员方法,用于描述自己的特征和行为。例如,类PlaneTicket除了继承父类Ticket的成员变量和成员方法外,还添加了自己的成员变量flightNum(航班号)、seatType(舱位等级)、airlineCompany(航空公司)等单继承Java只支持单继承,也即一个类只能有一个父类。分析与讨论衬衣与裙子类具有许多相同的属性,能否将它们看成一种继承关系?深入理解继承概念面向对象中的继承是一个基于分类学
6、的概念,继承描述的是一种“isa”的关系。子类是父类在同一个分类分支上的一个更为特殊的类,只有当类之间存在的是一种能够被描述为:“子类isa父类”的时候,我们才使用继承。因此,在面向对象程序设计中,Skirt与Shirt类不能表示为一种继承关系。添加抽象服装衬衣裙子练习1.创建一个具有确定位置矩形类PlainRect,该类继承于类Rect,其确定位置用矩形的左上角坐标来标识,为该类添加:子类扩展两个属性:矩形左上角坐标startX和startY。练习2.编写上题PlainRect类的测试程序(1)创建一个左上角坐标为(
7、10,10),长为20,宽为10的矩形对象;(2)计算并打印输出矩形的面积;思考子类可以继承父类的所有非私有成员,那么构造器方法是否可以继承?子类扩展的成员属性又该如何初始化呢?子类的构造器方法//父类构造器方法publicTicket(doubleprice,StringstartStation,StringendStation,StringseatNum){this.price=price;this.startStation=startStation;this.endStation=endStation;this.
8、seatNum=seatNum;}//子类构造器方法publicPlaneTicket(doubleprice,StringstartStation,StringendStation,StringflightNum,StringseatNum,StringseatType,booleanroundTrip,Stringairlin
此文档下载收益归作者所有