Java面向对象的特征.ppt
《Java面向对象的特征.ppt》由会员分享,可在线阅读,更多相关《Java面向对象的特征.ppt(65页珍藏版)》请在三一办公上搜索。
1、第六章 Java面向对象的特征,目 录,Java的继承机制,多态,包,经典练习题,接口,抽象类与抽象方法,重点与难点点拨,本章知识重点,抽象类与抽象方法,Java的多态性,Java的接口,Java的包,Java的继承机制,本章知识难点,多态性的体现,构造方法及其继承,对象的类型转换,接口的概念与实现,继承的实现,Java的继承机制,继承机制下成员要素的行为,最终类与最终成员要素,对象的类型转换,继承的概念,继承也称为派生,其概念来源于这样一种思想:同类事物具有共同性,在同类事物中,每个事物又具有其特殊性。运用抽象的原则舍弃对象的特殊性,抽取其共性,便得到适应于一组对象的类,这便是一般类或通用类
2、,而把具有特殊性的类称为特殊类或具体类。假定B类与C类具有A类的全部属性和方法,同时又分别具有自己特有的某些属性和方法,则把类A称作一般类,把类B与类C称作类A的特殊类。,车类层次结构图,车类层次结构图为例,来演示继承关系:,继承的意义,继承很好地解决了软件复用。通过继承,一个类可以拥有已有类的所有功能。因此,只需指明新类与现有类的不同,即增加自己的属性和方法即可,从而有效地减少了代码和数据的冗余度,增强了程序的可重用性。举例而言:假定B类继承了A类(即A类是B类的基类),建立B类时只需增加与A类不同的特征(成员数据和成员方法)的描述,不需再重新定义A类已有的特征。,继承的特征,继承关系是传递
3、的,继承简化了人们对事物的认识和描述,能清晰体现相关类之间的层次结构关系,通过增强一致性来减少模块的接口和界面,大大增加程序的易维护性,Java不支持类的多重继承,只支持类的单一继承,继承的实现,Java程序中,继承通过extends关键字来实现。子类对父类的继承是在类的声明中通过关键字extends来指明。实现继承的语法结构为:修饰符 class extends/类体定义,继承的示例,【例】实现两个类的描述:基类人(Person)及子类学生(Pupil)。人具有姓名(name)、年龄(age)、性别(sex)及配偶姓名(spouseName)四类属性,同时具有工作(work)、休息(rest
4、)、娱乐(amusement)及处理家务(housework)四种行为方法。学生将从人这一父类中继承除配偶姓名以外的三类属性,并继承及除工作和处理家务以外的两类行为,同时要添加自身类特有的几类属性:所属学校(school)、所学专业(specialty)及所在年级(degree),同时还要增加几种学生的行为方法:学习(study)与考试(exam)。,UML图表达类的继承关系,构造方法的继承,构造方法是类中最为特殊的方法。子类能够继承基类的非私有成员要素,而构造方法为公共类型,因此子类能够继承基类的构造方法。,继承关系示例,【例】点(Point)类描述了平面坐标系下的一个坐标点的属性与方法。由
5、点类派生出两个子类:圆类(Circle)与矩形类(Rectangle)。圆类除了圆心坐标外,还具有半径(radius)属性;矩形类除左上角的坐标点外,还具有长度(width)与高度(height)属性。分别为每个类创建一些实例对象并输出其相关信息。用UML图表示Point、Circle与Rectangle类的继承关系,用UML图表示,继承机制下成员要素的行为,继承机制下,类的成员要素的行为方式将会发生很大的变化。子类可以定义与基类相同的成员变量和成员方法,这种情况下,Java系统将面临如何解决成员要素定义的二义性冲突现象。对于属性而言,子类在实现继承父类属性的同时,可以定义与父类属性相同名称与
6、类型的自身属性,子类在执行自身方法时,默认情况下使用的是自身定义的属性,从而将父类的同名属性暂时屏蔽掉。这种原则称为属性隐藏。,继承机制下成员要素的行为,同样,对于成员方法而言,子类在继承父类方法的同时,可以定义与父类原型相同而方法的具体实现不同的自身的成员方法,子类在自身方法中调用与父类同名的方法时,默认情况下调用的是自身定义的方法,从而相当于重新实现了父类的方法功能。这一原则称为方法覆盖。,最终类与最终成员要素,final修饰符能够用来修饰类及类的成员要素。final修饰的类称为最终类或终止继承类;final修饰的成员变量称为常量;final修饰的成员方法称为最终方法或禁止覆盖方法。,最终
7、成员要素,final变量:用final修饰的成员变量将自动成为常量,这类常量只能被初始化一次,以后不再允许被改变,初始化过程一般是在定义时同时进行的,final方法:被final修饰的方法能够被子类继承,但不允许被子类覆盖/重写,也不允许被子类扩展,final类:被final修饰的类成为最终类,这种类不能被继承,即可能派生子类,最终类与最终成员要素,final修饰符能够用来修饰类及类的成员要素。final修饰的类称为最终类或终止继承类;final修饰的成员变量称为常量;final修饰的成员方法称为最终方法或禁止覆盖方法,对象的类型转换,基本数据类型可以进行类型转换,Java 支持隐式(自动)及
8、显式(强制)两种类型转换方式,类的对象也能够进行类型转换。为讲述方便,将对象所属的类称为对象类型,类型转换(Type Casting),也称为塑型,对象类型转换遵循的原则,对象类型转换必须在继承的层次内进行,否则程序将出现异常,向上转型是安全的,向下转型是危险的,对象类型转换遵循的原则(续),对象能够转换为对象类型实现的一个接口,一个对象被转换为父类对象或接口引用变量,还可以再转换回它原来的对象类型,在类的继承结构中,处于相同层次的类对象之间不能进行转换,抽象类与抽象方法,类与方法的抽象,抽象类与抽象方法的应用,类与方法的抽象,抽象类:就是不能使用new关键字进行实例化的类,即没有具体实例对象
9、的类。抽象类通常不具备实际功能,不能创建对象,只作为专门用来派生其他子类的基类。定义抽象类的目的是为子类提供公共信息与接口。抽象方法:是一种不完整的方法,它只包含有方法声明,而无方法体的定义,因而抽象方法是只有方法原型而无功能实现的一种行为规范,用来为所在类的子类声明方法的接口标准。,有关抽象类的说明,当声明类被为抽象类时,需要在这个类前加修饰abstract,抽象类通常包含若干个(可为零个)抽象方法;但不能在非抽象类中声明抽象方法,抽象类不能创建对象,创建对象的工作由抽象类派生的非抽象子类来实现,抽象类可以包含非抽象类所能包含的任何元素,这些要素包含具体的属性、非抽象方法以及多个重载的构造方
10、法,有关抽象类的说明(续1),抽象类中不可包含抽象构造方法或抽象静态方法,抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类,若一个类中包含了至少一个抽象方法,则该类必须被声明为抽象类;但声明为抽象类的类不一定要包含抽象方法,抽象类必须被子类继承,并由子类实现它的所有抽象方法,没有所谓的最终抽象类,即抽象类不能再用final修饰类声明,有关抽象类的说明(续2),不能创建abstract类的实例。然而可以创建一个引用型号变量,其类型为一个抽象类,并让它指向非抽象子类的一个实例,抽象类中不能定义private类型的成员变量和成员方法,若一个子类继承了一个抽象类,该子类没有实现抽象类中定义的每一个
11、抽象方法,则该类仍然为抽象类,必须在它的类定义语句中加上abstract抽象修饰符。直到某个子类实现了它所有祖先类声明的抽象方法,该类才不再是抽象类,才能够生成实例对象,抽象类的意义,抽象类实现自然界的抽象概念,体现数据抽象的思想,是实现程序多态性的一种手段,抽象类是类层次中较高层次的概括,抽象类能让其子类继承它的抽象化的特征,抽象类从更高级别上描述概念性的内容,抽象类中可以包括被其所有子类共享的公共属性与公共行为,有利于对所要解决问题的概念层次关系的组织与设计,抽象类提供了可由其子类共享的一般形式,能够更好地统一用户接口,抽象类是其所有子类公共属性的集合,可以充分利用这些公共属性来提高程序开
12、发和维护的效率,抽象方法的说明,抽象方法只需方法头的声明,无需实现方法体,absteact不能与private、static、final或native并列修饰同一个方法,即标明为private、static、final或native类型的方法不能再声明为抽象的,如果一个类中含有抽象方法,则必须将这个类声明为抽象类,所有的抽象方法,都必须定义于抽象类中。只有抽象类才能具有抽象方法,有关抽象方法的说明(续),一个抽象类的子类如果不是抽象类,则它必须实现抽象基类中的每一个抽象方法,即重写抽象基类中的所有抽象方法,如果父类中已有同名的absteact方法,则子类中就不能声明同名的抽象方法。抽象方法的真
13、正实现由所在抽象类的不同子类在各自的类定义中完成。各子类将从抽象父类继承来的所有抽象方法进行重写,形成各自具有相同方法名,相同返回值类型,相同参数列表,目的一致但是具体实现有一定差别的方法,抽象方法最后的分号不能省略,分号用来代替方法体的定义,抽象方法的意义,抽象方法能够隐藏具体的细节信息,使调用该方法的程序不必过分关注该类和它的各个子类的内部状况,抽象方法为抽象类的子类规定了它们可用的标准行为与接口。抽象类的所有非抽象子类都必须完成父类中声明的抽象方法,抽象方法提供了实现一个接口,多种方法的机制,即所有的子类对外都呈现相同名字的方法接口,接口,接口、类与抽象类,接口的概念,下面通过一个实际例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 面向 对象 特征
链接地址:https://www.31ppt.com/p-6510292.html