欢迎来到天天文库
浏览记录
ID:50051064
大小:952.00 KB
页数:32页
时间:2020-03-08
《Java程序设计实用教程 教学课件 作者 耿祥义 张跃平 Java程序设计实用教程_第5章_子类与继承.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、注意:开始用功了!1《Java程序设计实用教程》第5章配合例子源代码一起使用Powerpoint制作:耿祥义张跃平子类与继承2导读3§5.1子类与父类利用继承,可以先编写一个共有属性的一般类,根据该一般类再编写具有特殊属性的新类,新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为。由继承而得到的类称为子类,被继承的类称为父类(超类)。例如:classStudentextendsPeople{……}声明一个类的子类的格式如下:class子类名extends父类名{……}4§5.2子类的继承性所谓子类继承父类的成员变量作为自己的一个成员变量,就好象它们是在子类中直接
2、声明一样,可以被子类中自己定义的任何实例方法操作。所谓子类继承父类的方法作为子类中的一个方法,就象它们是在子类中直接定义了一样,可以被子类中自己定义的任何实例方法调用。5§5.2.1子类和父类在同一包中的继承性如果子类和父类在同一个包中,那么,子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法,继承的成员变量或方法的访问权限保持不变。例5-1People.java,Student.java,UniverStudent.java,Example5_1.java6§5.2.2子类和父类不在同一包中
3、的继承性如果子类和父类不在同一个包中,那么,子类继承了父类的protected、public成员变量做为子类的成员变量,并且继承了父类的protected、public方法为子类的方法,继承的成员或方法的访问权限保持不变。7§5.2.3protected的进一步说明(选讲)一个类A中的protected成员变量和方法可以被它的直接子类和间接子类继承,如B是A的子类,C是B的子类,D又是C的子类,那么B、C和D类都继承了A类的protected成员变量和方法。如果用D类在D中创建了一个对象,该对象总是可以通过“.”运算符访问继承的或自己定义的protected变量和protec
4、ted方法的,但是,如果在另外一个类中,如在Other类中用D类创建了一个对象object,该对象通过“.”运算符访问protected变量和protected方法的权限如所述。(1)对于子类D中声明的protected成员变量和方法,如果object要访问这些protected成员变量和方法,只要Other类和D类在同一个包中就可以了。(2)如果子类D的对象的protected成员变量或protected方法是从父类继承的,那么就要一直追溯到该protected成员变量或方法的“祖先”类,即A类,如果Other类和A类在同一个包中,那么object对象能访问继承的prote
5、cted变量和protected方法。8§5.2.4继承关系(Generalization)的UML图如果一个类是另一个类的子类,那么UML通过使用一个实线连接两个类的UML图来表示二者之间的继承关系,实线的起始端是子类的UML图,终点端是父类的UML图,但终点端使用一个空心的三角形表示实线的结束。9§5.2.5关于instanceof运算符instanceof运算符是Java独有的运算符号。instanceof是双目运算符,其左面的操作元是对象,右面的操作元是类,当左面的操作元是右面的类或子类所创建的对象时,instanceof运算的结果是true,否则是false。对于例
6、5-1中的People、Student和UniverStudent类,如果zhang和zhaoqiang分别是Student和UniverStudent创建的对象,那么zhaoqianginstanceofPeoplezhaoqianginstanceofStudentzhanginstanceofStudentzhanginstanceofPeople4个表达式的结果都是true,而zhanginstanceofUniverStudent;表达式的结果是false。10§5.3子类对象的特点当用子类的构造方法创建一个子类的对象时,不仅子类中声明的成员变量被分配了内存,而且父
7、类的成员变量也都分配了内存空间,但只将其中一部分作为分配给子类对象的变量。也就是说,父类中的private成员变量尽管分配了内存空间,也不作为子类对象的变量,即子类不继承父类的私有成员变量。同样,如果子类和父类不在同一包中,尽管父类的友好成员变量分配了内存空间,但也不作为子类的成员变量,即如果子类和父类不在同一包中,子类不继承父类的友好成员变量.例题5-2A.java,B.java,Example5_2.java11§5.4成员变量的隐藏和方法重写§5.4.1成员变量的隐藏对于子类可以从父类继承的成员变
此文档下载收益归作者所有