Java语法课件1第5章面向对象(二) PPT课件内容

上传人:b****i 文档编号:5527034 上传时间:2023-11-20 格式:PPTX 页数:27 大小:220.99KB
收藏 版权申诉 举报 下载
Java语法课件1第5章面向对象(二) PPT课件内容_第1页
第1页 / 共27页
Java语法课件1第5章面向对象(二) PPT课件内容_第2页
第2页 / 共27页
Java语法课件1第5章面向对象(二) PPT课件内容_第3页
第3页 / 共27页
Java语法课件1第5章面向对象(二) PPT课件内容_第4页
第4页 / 共27页
Java语法课件1第5章面向对象(二) PPT课件内容_第5页
第5页 / 共27页
文档描述:

文档《Java语法课件1第5章面向对象(二) PPT课件内容》内容(27页完美版)由用户上传提供,感谢您阅读,更多关于《Java语法课件1第5章面向对象(二) PPT课件内容(珍藏版)》内容请在新文库网搜索。

1、第4章面向对象(二)5.1类的继承5.2抽象类和接口5.3多态5.1类的继承5.1.1继承的概念利用继承机制。可以先创建一个具有共性的一般类,从一般类再派生出具有特殊性的新类,新类继承一般类的属性和方法,并根据需要增加它自己新的属性和新的方法。5.1类的继承5.1.1继承的概念类的继承也称类的派生。通常,将被继承的类称为父类或超类,派生出来的类称为子类,从一个父类可以派生出多个子类,子类还可以派生出新的子类,这样就形成了类的层次关系。在Java中一个类只能继承一个父类,称为单继承。但一个父类却可以派生出多个子类,每个子类作为父类又可以派生出多个子类,从而形成具有树形结构的类的层次体系。5.1类

2、的继承1.Java中,子类继承父类的关键字:extendsJava语言只支持单继承,不允许多重继承,即一个子类只能继承一个父类Java语言虽然不支持多重继承,但它支持多层继承,即一个类的父类可以继承另外的父类。5.1类的继承2.父类成员的访问权限子类可以继承父类中的属性成员和除构造方法以外的方法成员,但不能继承父类的构造方法。而且,并不是对父类的所有属性成员和方法成员都具有访问权限,即并不是在子类声明的方法中能够访问父类中的所有属性成员和方法成员。5.1类的继承2.父类成员的访问权限子类对父类的private成员没有访问权限。既不能直接引用父类中的private属性成员,也不能调用父类中的pr

3、ivate方法成员,如果需要访问父类的成员,可以通过父类中的非private成员方法来引用父类的成员。子类对父类的public或protected成员具有访问权限。子类对父类的默认权限成员的访问分为两种情况:一是对同一包中父类的默认权限成员具有访问权限;二是对其他包中父类的默认权限成员没有访问权限。5.1类的继承5.1.2成员变量的隐藏类的继承使得子类从父类中既继承了有用的属性成员,也会继承一些不需要或不恰当的属性成员。当父类中的属性不适合子类需要时,子类可以把从父类继承来的属性成员进行重新定义。由于在子类中也定义了与父类中名字相同的成员变量,因此父类中的成员变量在子类中就不可见了,这就是成员

4、变量的隐藏。这时在子类中若想引用父类中的同名变量,可以用关键词super作为前缀来引用父类中同名变量。即:super.属性名5.1类的继承5.1.3方法的重写在继承关系中,子类从父类中继承了可访问的方法,但有时从父类继承下来的方法不能完全满足子类需要,这时就需要在子类方法中修改父类方法,即子类重新定义从父类中继承的成员方法,这个过程称为方法重写或覆盖。5.1类的继承5.1.3方法的重写子类方法覆盖父类的方法时,方法头要与父类一样,即两个方法要具有完全相同的方法名、返回类型、参数表。方法体要根据子类的需要重写,从而满足子类功能的要求。与类中使用父类被隐藏的属性成员类似,如果子类中需要调用被覆盖的

5、父类中的同名方法,通过super关键字作前缀来调用,即:super.方法名()5.1类的继承方法重载与方法重写的区别:方法重载是在同一个类中,方法重写是在子类与父类中。方法重载要求:方法名相同,参数个数或参数类型不同。方法重写要求:子类与父类的方法名、返回值类型和参数列表相同。5.1类的继承5.1.4super关键字Java用关键字super表示父类对象,因此在子类中使用super作为前缀可以引用被子类隐藏的父类的变量和被子类覆盖的父类的方法。当子类中没有声明与父类同名的成员变量时,引用父类的成员变量可以不使用super。当子类中没有声明与父类中同名的成员方法时,调用父类的成员方法也可以不使用

6、super。5.1类的继承5.1.4super关键字其语法格式如下:super.成员变量super.成员方法super(参数列表)super(参数列表)5.1类的继承5.1.5final关键字final修饰的类不能被继承。final修饰的方法不能被子类重写。final修饰的变量是常量,初始化后不能再修改。5.2抽象类和接口5.2.1抽象类Java用abstract关键字,表示抽象的意思,用abstract修饰的方法,称为抽象方法,是一个不完整的方法,只有方法的声明,没有方法体。用abstract修饰的类,称为抽象类,语法如下:权限修饰符 abstract class 类名 权限修饰符 abst

7、ract 返回值类型 方法名(参数列表);5.2抽象类和接口5.2.1抽象类抽象方法声明只需给出方法头,不需要方法体,直接以“;”结束。构造方法不能声明为抽象方法。在抽象类中,可以包含抽象方法,也可以不包含抽象方法,但类中如果有抽象方法,此类必须声明为抽象类。抽象类不能被实例化,即使抽象类中没有抽象方法,也不能被实例化。子类必须实现抽象父类中所有抽象方法,否则子类必须要声明为抽象类。5.2抽象类和接口5.2.2接口接口是全局常量和公共抽象方法的集合,接口可被看作一种特殊的抽象类,也属于引用类型。每个接口都被编译成独立的字节码文件。Java提供interface关键字,用于声明接口,其语法格式如

8、下:interface 接口名 全局常量声明;抽象方法声明;5.2抽象类和接口5.2.2接口可以在抽象类中定义方法的默认行为,但是接口中的方法不能有默认行为。如果没有指定接口方法和变量的访问权限,Java将其默认为public。exntends表示的是一种单继承关系,而一个类却可以实现多个接口,表示的是一种多继承。接口中定义的变量和方法都包含默认的修饰符,其中定义的变量默认声明为“public static final”,即全局常量。定义的方法默认声明为“public abstract”,即抽象方法。如果一个类实现了某个接口,那么必须实现这个接口所有的抽象方法,否则这个类是抽象类。5.2抽象类

9、和接口5.2.2接口1.接口的实现Java提供implements关键字,用于实现多个接口,其语法格式如下:class 类名 implements 接口 属性和方法5.2抽象类和接口5.2.2接口2.接口的继承接口支持多重继承,即一个接口可以继承多个父接口。其语法格式如下:interface 接口名 extends 接口名 全局常量声明 抽象方法声明5.2抽象类和接口5.2.2接口3.使用接口的好处(1)声明引用时要使用接口类型。(2)方法的参数要声明成接口类型。(3)方法的返回值要声明成接口类型。5.2抽象类和接口5.2.3抽象类和接口的关系区别区别接口接口抽象类抽象类含义含义接口通常用于描

10、述一个类的外围能力,而不是核心特征。类与接口之间是-able或can do的关系。抽象类定义了它的继承类的核心特征。派生类与抽象类之间是is-a的关系。方法方法接口只提供方法声明抽象类可以提供完整方法、默认构造方法以及用于覆盖的方法声明变量变量只包含public static final常量,常量必须在声明时初始化可以包含实例变量和静态变量多重继承多重继承一个接口可以继承多个接口一个类只能继承一个抽象类实现类实现类类可以实现多个接口类只从抽象类派生,必须重写适用性适用性所有的实现只能共享方法签名所有实现大同小异,并且共享状态和行为5.3多态5.3.1多态的概念多态意为一个名字可具有多个语义。在

11、程序设计语言中,多态性是指“一种定义,多种实现”。5.3多态5.3.1多态的概念多态有下面几个特点:对象类型不可变,引用类型可变。只能调用引用对应的类型中定义的方法。运行时会运行子类覆盖的方法。多态实现的三个必要条件要有继承(实现implements)要有重写(overWrite&overRide)父类引用指向子类对象5.3多态5.3.2向上转型和向下转型1.向上转型:是从子类到父类的转换,也称隐式转换。2.向下转型:是从父类到子类的转换,也称显式转换。5.3多态5.3.3Object类Java中提供了一个Object类,是所有类的父类,如果一个类没有显式地指定继承类,则该类的父类默认为Object。5.3多态5.3.3Object类1.toString()方法:调用一个对象的toString()方法会默认返回一个描述该对象的字符串,它由该对象所属类名、和对象十六进制形式的内存地址组成。2.equals()方法:equals()方法是用于测试两个对象是否相等。5.3多态5.3.4工厂设计模式工厂模式(Factory)主要用来实例化有共同接口的类,它可以动态决定应该实例化哪一个类,不必事先知道每次要实例化哪一个类。工厂模式主要有三种形态:简单工厂模式、工厂方法模式和抽象工厂模式。接下来分别对这三种形态进行讲解。

展开阅读全文

最近上传DOC

关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

黔ICP备20002965号-1  在线客服QQ:365045600

Copyright © 2020-2023 www.xinwenku.com All rights reserved 新文库网 版权所有

收起
展开