电子教案专业知识讲座省公共课一等奖全国赛课获奖课件.pptx
《电子教案专业知识讲座省公共课一等奖全国赛课获奖课件.pptx》由会员分享,可在线阅读,更多相关《电子教案专业知识讲座省公共课一等奖全国赛课获奖课件.pptx(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5 5章章 继承、接口与泛型继承、接口与泛型n 本章导读本章导读n1.子类与父类n2.子类继承性n3.子类对象结构过程n4.组员变量隐藏和方法重写n5.super关键字n6.final类与final方法n7.对象上转型对象第1页第第5 5章章 继承、接口与泛型继承、接口与泛型n8.继承与多态n9.使用abstract类n10.接口n11.接口回调n12.内部类n13.匿名类n14.异常类n15.泛型类第2页5.1 5.1 子类与父类子类与父类 上一章我们主要学习了类和对象相关知识,讨论了类组成以及用类创建对象等主要问题,本章主要介绍类继承、和继承相关多态性以及接口等主要概念。本章还初步介绍
2、了SDK1.5新推出泛型。子类与父类子类与父类 继承是一个由已经有类创建新类机制。利用继承,我们能够先创建一个共有属性普通类,依据该普通类再创建含有特殊属性新类,新类继承普通类状态和行为,并依据需要增加它自己新状态和行为。由继承而得到类称为子类,被继承类称为父类(超类)。第3页5.1 5.1 子类与父类子类与父类 父类能够是自己编写类也能够是java类库中类。利用继承有利于实当代码重复使用,子类只需要添加新功效代码即可。Java不支持多重继承,即子类只能有一个父类。使用关键字extends来申明一个类是另外一个类子类,格式以下:class 子类名 extends 父类名 .返回返回第4页5.2
3、 5.2 子类继承性子类继承性 1继承定义 所谓类继承就是子类继承父类组员变量和方法作为自己组员变量和方法,就好象它们是在子类中直接申明一样。当然,子类能否继承父类变量和方法还有一定限制。下面对其进行详细介绍。2子类和父类在同一包中继承性 假如子类和父类在同一个包中,那么子类自然地继承了其父类中不是private组员变量作为自己组员变量,而且也自然地继承了父类中不是private方法作为自己方法。继承组员变量以及方法访问权限保持不变。第5页5.2 5.2 子类继承性子类继承性下面我们看一个例子。程序运行结果见下列图第6页5.2 5.2 子类继承性子类继承性 3子类和父类不在同一包中继承性 假如
4、子类和父类不在同一个包中,那么子类只能继承父类protected、public组员变量和方法,继承组员或方法访问权限不变。假如子类和父类不在同一个包里,子类不能继承父类友好变量和友好方法。返回返回第7页5.3 5.3 子类对象结构过程子类对象结构过程 当用子类结构方法创建一个子类对象时,子类结构方法总是先调用父类某个结构方法,假如子类结构方法没有指明使用父类哪个结构方法,子类就调用父类不带参数结构方法。所以,我们能够这么来了解子类创建对象:(1)将子类中申明组员变量做为子类对象组员变量。子类未继承组员 子类未继承组员 引用子类对象 子类继承组员 子类继承组员 子类申明组员 子类申明组员图 (2
5、)父类组员变量也都分配了内存空间,但只将其中一部分(继承那部分)做为子类对象组员变量。父类private组员变量尽管分配了内存空间,但它不作为子类成第8页5.3 5.3 子类对象结构过程子类对象结构过程 元变量,即父类私有组员不归子类管理。方法继承性与组员变量相同。但若子类和父类不在同一包中,尽管父类友好组员分配了内存空间,但也不作为子类组员。子类对象内存示意图以下列图 子类未继承组员 子类未继承组员 引用子类对象 子类继承组员 子类继承组员 子类申明组员 子类申明组员第9页5.3 5.3 子类对象结构过程子类对象结构过程 上页示意图中“叉号”表示子类中申明定义方法不能够操作这些内存单元,“对
6、号”表示子类中申明定义方法能够操作这些内存单元。经过上图,给我们有感觉好象:子类创建对象时似乎浪费了一些内存,因为当用子类创建对象时,父类组员变量也都分配了内存空间,但只将其中一部分做为子类对象组员变量,但实际情况并非如此,我们需注意到,子类中还有一部分方法是从父类继承,这部分方法却能够操作这部分变量。下面例子中,子类对象调用继承方法操作这些未被子类继承却分配了内存空间变量。返回返回第10页5.4 5.4 组员变量隐藏和方法重写组员变量隐藏和方法重写 1组员变量隐藏 子类能够隐藏继承组员变量,当在子类中定义和父类中同名组员变量时,子类就隐藏了继承组员变量,即子类对象以及子类自己申明定义方法操作
7、与父类同名组员变量。下面我们看一个例子,在这个例子中子类隐藏了从父类继承double型变量。该程序运行结果以下:第11页5.4 5.4 组员变量隐藏和方法重写组员变量隐藏和方法重写 2方法重写 子类也能够隐藏方法,子类经过方法重写来隐藏继承方法。方法重写是指:子类中定义一个方法,而且这个方法名字、返回类型、参数个数和类型与从父类继承方法完全相同。子类经过方法重写能够把父类状态和行为改变为本身状态和行为。这时,假如子类想使用被隐藏方法,必须使用关键字super,我们将在后面讲述super使用方法。下面这个例子能够帮助我们更加好了解方法重写。第12页5.4 5.4 组员变量隐藏和方法重写组员变量隐
8、藏和方法重写 需要注意是:需要注意是:方法重写时一定要确保方法名字、类型、参数个数和类型同父类某个方法完全相同,只有这么,子类继承这个方法才被隐藏。假如子类在准备隐藏继承方法时,参数个数或参数类型与父类方法不尽相同,那实际上也没有隐藏继承方法,这时子类就出现两个方法含有相同名字。下面我们看个例子。程序运行结果如右图:第13页5.4 5.4 组员变量隐藏和方法重写组员变量隐藏和方法重写 3访问修饰符protected深入说明 一个类A中protected组员变量和方法能够被它直接子类和间接子类继承,比如B是A子类,C是B子类,D又是C子类,那么B、C和D类都继承了A protected组员变量和
9、方法。假如用D类在D本身中创建了一个对象,那么该对象总是能够经过“.”运算符访问继承或自己定义protected变量和protected方法,不过,假如在另外一个类中,比如E类,用D类创建了一个对象object,该对象经过“.”运算符访问protected变量和protected方法权限以以下(a)、(b)所述。第14页5.4 5.4 组员变量隐藏和方法重写组员变量隐藏和方法重写 (a)子类Dprotected组员变量和方法,假如不是从父类继承来,object访问这些protected组员变量和方法时,只要E类和D类在同一个包中就能够了。(b)假如子类D对象protected组员变量或prot
10、ected方法是从父类继承,那么就要一直追溯到该protected组员变量或方法“祖先”类,即A类,假如E类和A类在同一个包中,object对象能访问继承protected变量和protected方法。返回返回第15页5.5 Super 5.5 Super 关键字关键字 Super关键字有两种使用方法:一个使用方法是子类使用super调用父类结构方法,另一个使用方法是子类使用super调用被子类隐藏组员变量和方法。1使用super调用父类结构方法 子类不继承父类结构方法,所以,子类假如想使用父类结构方法,必须在子类结构方法中使用而且必须使用关键字super来表示,而且super必须是子类结构方
11、法中第一条语句。在下面例子中,子类结构方法中使用super调用父类结构方法。第16页5.5 Super 5.5 Super 关键字关键字 2使用super操作被隐藏组员变量和方法 当子类中定义了一个方法,而且这个方法名字、返回类型、参数个数和类型和父类某个方法完全相同时,子类从父类继承这个方法将被隐藏。假如我们在子类中想使用被子类隐藏组员变量或方法就能够使用关键字super。在下面这个例子中,子类使用super调用被隐藏组员变量和方法。其结果以下:返回返回第17页5.6 final 5.6 final 类和类和finalfinal方法方法 final类不能被继承,即不能有子类,如:final
12、class A 将一个类申明为final类普通是因为安全性考虑。因为一旦一个方法被修饰为final方法,则这个方法不能被重写,即不允许子类经过重写隐藏继承final方法。返回返回第18页5.75.7对象上转型对象对象上转型对象 1对象上转型 我们经常说“老虎是哺乳动物”、“狗是哺乳动物”等。若哺乳类是老虎类父类,这么说当然正确,但当你说老虎是哺乳动物时,老虎将失掉老虎独有属性和功效。下面我们就介绍对象上转型对象。假设,B是A子类或间接子类,当我们用子类B创建一个对象,并把这个对象引用放到A类申明对象中时,比如:A a;a=new B();第19页5.75.7对象上转型对象对象上转型对象 那么就
13、称对象a是子类对象b上转型对象,对象上转型对象实体是子类负责创建,但上转型对象会失去原对象一些属性和功效。上转型对象含有以下特点(见下列图所表示)。对象对象上转型对象继承或隐藏组员变量继承或重写方法新增变量新增方法第20页5.75.7对象上转型对象对象上转型对象 (1)上转型对象不能操作子类申明定义组员变量;也不能使用子类申明定义方法。(2)上转型对象能够操作子类继承组员变量和隐藏组员变量,也能够使用子类继承或重写方法。(3)上转型对象不能操作子类新增方法和组员变量 (4)能够将对象上转型对象再强制转换到一个子类对象,这时,该子类对象又具备了子类全部属性和功效。为了更加好了解对象上转型,我们先
14、看个例子。第21页5.75.7对象上转型对象对象上转型对象 不要将父类创建对象和子类对象上转型对象混同,对象上转型对象实体是由子类负责创建,只不过失掉了一些属性和功效而已。对于对象上转型好处我们在后面将对比介绍。返回返回第22页5.8 5.8 继承与多态继承与多态 和继承相关多态性是指父类某个方法被其子类重写时,能够产生自己功效行为,即同一个操作被不一样类型对象调用时可能产生不一样行为。比如,狗和猫都含有哺乳类功效:“叫声”,当狗操作“叫声”时产生声音是“汪汪,而猫操作“叫声”时产生声音是“喵喵”,这就是“叫声”多态。当一个类有很多子类时,而且这些子类都重写了父类中某个方法。当我们把子类创建对
15、象引用放到一个父类对象中时,就得到了该对象一个上转型对象,那么这个上转型对象在调用这个方法时就可能含有各种形态。第23页5.8 5.8 继承与多态继承与多态 因为不一样子类在重写父类方法时可能产生不一样行为。也就是说,不一样对象上转型对象调用同一方法可能产生不一样行为。下面让我们看一个例子来更加好地了解继承与多态和对象上转型对象。程序运行结果以下列图:返回返回第24页5.9 5.9 使用使用abstract abstract 类类 用关键字abstract修饰类称为abstract类(抽象类)。如:abstract class A abstract类不能用new运算符创建对象,必须产生其子类,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 教案 专业知识 讲座 公共课 一等奖 全国 获奖 课件
限制150内