欢迎来到天天文库
浏览记录
ID:20119530
大小:167.00 KB
页数:44页
时间:2018-10-10
《java第9章继承、多肽与接口》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章继承、多态与接口本章学习重点:继承与多态的概念继承与多态的实现机制抽象类和接口9.1继承与多态当一个类拥有另一个类的数据和操作时,就称这两个类之间具有继承关系,被继承的类称为父类或超类,继承的类称为子类。一个父类可以同时拥有多个子类,该父类实际上是所有子类的公共成员变量和公共方法的集合,而子类是父类的特殊化,可对公共成员变量和方法在功能、内涵方面加以扩展和延伸。面向对象的继承特性中,还有一个关于单继承和多继承的概念。单继承是指任何类都只有一个父类。多继承是指一个类可以有一个以上的父类,它静态数据和操作从所有这些父类中继承的。Java只支持单重继承,但支持界面,一个类可以实现多个界
2、面。利用界面可以得到多继承的优点,又没有多继承混乱、复杂的问题。Java继承:创建子类Java中的继承是通过extends关键字来实现的。格式为:class子类名extends父类名称{……}在定义类时用extends关键字指明新定义类的父类,就在两个类之间建立了继承关系,新定义的类被称为子类。如果子类和父类在同一个包中,它可以从父类那里继承所有非private的成员变量和方法作为自己的成员。如果子类和父类不在同一个包中,它可以从父类那里继承protected、public的的成员变量和方法作为自己的成员.【例】应用继承性的实例。classStudent{//自定义“学生”类intst
3、u_id;//定义属性:学生学号voidset_id(intid){//定义方法:设置学号stu_id=id;}voidshow_id(){//定义方法:显示学号System.out.println("thestudentIDis:"+stu_id);}}classUniversityStudentextendsStudent{//定义子类intdep_number;//定义子类特有的属性变量voidset_dep(intdep_num){//定义子类特有的方法dep_number=dep_num;}voidshow_dep(){System.out.println("thedep_n
4、umberis:"+dep_number);}publicstaticvoidmain(Stringargs[]){UniversityStudentLee=newUniversityStudent();Lee.set_id(2007070130);//继承父类学生的属性Lee.set_dep(701);//使用本类的属性Lee.show_id();//继承父类学生的方法Lee.show_dep();//使用本类的方法}}成员变量的隐藏和方法的覆盖1.成员变量的继承子类可以继承父类的所有非私有成员变量。2.成员变量的继承子类重新定义一个从父类那里继承来的成员变量变量完全相同的变量,称为
5、成员变量的隐藏。3.方法的覆盖方法的覆盖是指子类重定义从父类继承来的一个同名方法,此时子类将清除父类方法的影响。注意:子类在重新定义父类已有的方法时,应保持与父类完全相同的方法头声明,即应与父类有完全相同的方法名、相同的参数表和相同的返回类型。【例】成员变量的隐藏和方法的覆盖示例。classSuperClass{intx;……voidsetX(){x=0;}……}classSubClassextendsSuperClass{intx;//成员变量的隐藏……voidsetX(){//方法的覆盖x=5;}……}方法的覆盖与成员变量的隐藏的区别为:子类隐藏父类的成员变量只是使之不可见,父类的
6、同名成员变量在子类对象中仍然占有自己独立的内存空间;而子类方法对父类同名方法的覆盖将清除父类方法占用的内存,从而使父类方法在子类对象中不存在。方法的覆盖与成员变量的隐藏的意义:将父类行为和状态改为自身的行为和状态,对外仍保持统一的接口和名字,不失继承性。super子类对父类的同名成员变量和方法,分别实行隐藏和覆盖。但是,有时需要在子类中访问父类的变量、父类的方法,Java提供的super就可以实现这访问。它的使用有三种情况:访问被隐藏的父类成员变量,如:super.VariableName调用父类中被覆盖的方法,如:super.MethodName调用父类中的构造方法,如:super(
7、[paramList])多态性多态性是面向对象程序设计的又一特征。面向过程的语言编程的主要工作是编写一系列过程或函数,这些过程和函数各自对应一定的功能,它们之间不能重名,否则在调用时,就会产生歧异和错误。而在面向对象的程序设计中,有时却需要利用这样的“重名”现象来提高程序的抽象度和简洁性。多态性是指同名的不同方法在程序中共存。即为同一个方法定义几个版本,运行时根据不同情况执行不同的版本。调用者只需使用同一个方法名,系统会根据不同情况,调用相应的
此文档下载收益归作者所有