欢迎来到天天文库
浏览记录
ID:59417068
大小:95.50 KB
页数:39页
时间:2020-09-19
《Java语言程序设计07类的继承和多态机制ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章类的继承和多态机制7.1类的继承7.2类的多态性7.3final类和final成员7.1类的继承在Java中,类是一个层次结构,其中Object为超类或基类,所有类都直接或间接地继承自Object类;子类继承父类的属性和方法,同时也可以修改父类的属性或重载父类的方法,以及在父类的基础上添加新的属性和方法。因此,父类和子类之间反映的是“一般与特殊”的关系。在类的继承中,被继承的类称为父类,继承而来的类则称为子类。有多个子类共同继承一个父类,那么这个父类就是多个类的基类。Java语言只支持单继承,如果要定义多继承,可以使用将要讲解的接口。1继承的实现定义子类的形式为:[访问权限]class类
2、名extends父类名{类体}Java中的继承是通过extends关键字来实现的,在定义类时使用extends关键字指明新定义类的父类。新定义的类称为子类,它可以从父类那里继承属性和方法。类的继承原则如下:子类继承父类的成员变量,包括实例成员变量和类成员变量。子类继承父类除构造方法以外成员方法,包括实例成员方法和类成员方法。子类不能继承父类的构造方法,因为父类的构造方法用来创建父类对象,子类需定义自己的构造方法,用来创建子类自己的对象。子类可以重新定义父类成员。父类成员的访问权限子类虽然继承了父类的成员变量和成员方法,但并不是对父类所有成员变量和成员方法都具有访问权限,即并不是在自己声明的方法
3、中能够访问父类所有成员变量或成员方法。子类访问父类成员的权限如下:子类对父类的private成员没有访问权限。子类对父类的public和protected成员具有访问权限。子类对父类的缺省权限成员访问权限分2种情况:对于同一包中父类的缺省权限成员具有访问权限,对其它包中父类的缺省权限成员没有访问权限。Java实例——类的继承publicclassPerson1{privateStringname;protectedintage;publicvoidsetName(Stringna){name=na;}publicvoidsetAge(intag){age=ag;}publicStringget
4、Name(){returnname;}publicintgetAge(){returnage;}Java实例——(续)publicvoidprint_p(){System.out.println("Name:"+name+"Age:"+age);}}publicclassTeacher1extendsPerson1{ProtectedStringdepartment;publicTeacher(Stringna,intag,Stringde){setName(na);setAge(ag);department=de;}publicvoidprint_s(){print_p();System.o
5、ut.println("Department:"+department);}publicstaticvoidmain(Stringarg[]){Teacher1t;t=newTeacher1("Wang",40,"ComputerScience");t.print_s();t.setName("WangGang");t.age=50;//直接访问父类中protected成员变量age,但不能访问其//private成员变量namet.print_s();}}程序运行结果如下:Name:WangAge:40Department:ComputerScienceName:WangGangAge:50
6、Department:ComputerScience2this与super可以使用super引用父类成员变量super.成员变量名调用父类成员方法super.成员方法名(参数表)调用父类构造方法super(参数表)使用this引用当前对象的成员变量this.成员变量名调用当前对象的成员方法this.成员方法名(参数表)调用当前对象的构造方法this(参数表)例--利用super访问父类成员classPerson2{protectedStringname;protectedintage;publicPerson2(Stringna,intag){name=na;age=ag;}publicvoi
7、dprint(){System.out.println("Parent:Name="+name+"Age="+age);}}publicclassTeacher2extendsPerson2{Stringdepartment,name;publicTeacher2(Stringna,intag,Stringde,Stringna1){super(na,ag);department=de;name=
此文档下载收益归作者所有