欢迎来到天天文库
浏览记录
ID:58883139
大小:2.22 MB
页数:86页
时间:2020-09-30
《Java基础第4章-面向对象(下)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、新企学.IT企业直通车Java基础第4章-面向对像(下)作者:王力日期:2017-06目录4.1类的继承4.2Final关键字4.3抽象类和接口4.4多态4.5异常4.6包4.7访问控制4.1类的继承4.1.1继承的概念继承是一种由已有类创建新类的机制。利用继承,我们可以先创建一个共有属性的一般类,根据该一般类再创建具有特殊属性的新类。新类继承一般类的状态和行为,并根据需要增加它自己的状态和行为。从现有类出发定义一个新类,称为新类继承了现有的类,其中被继承的现有类叫做超类(superclass)或父类,由继承而得到的类称为子类(subclass)。4.1类的继承4.1.1继承的概念例如,当
2、类sub1继承类super时,就表明sub1是super的子类,即super是sub1的超类(父类)。子类从超类继承变量和方法,从而可以共享数据和方法。sub1类由两部分组成:继承部分和增加部分。继承部分是从super继承过来的,把super的成员映射成sub1的继承成员;增加部分是专为sub1编写的代码,如下图所示:Super超类继承super部分sub1增加部分继承super部分sub2增加部分Sub1子类Sub2子类4.1类的继承4.1.1继承的概念程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。在Java中,类的继承是指在一个现有类的基础上去构建
3、一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法。在程序中,如果想声明一个类继承另一个类,需要使用extends关键字,接下来通过一个案例来学习子类是如何继承父类的。4.1类的继承4.1类的继承4.1.1继承的概念在类的继承中,需要注意一些问题,具体如下:1、在Java中,类只支持单继承,不允许多重继承,也就是说一个类只能有一个直接父类,例如下面这种情况是不合法的。2、多个类可以继承一个父类,例如下面这种情况是允许的。4.1类的继承4.1.1继承的概念在类的继承中,需要注意一些问题,具体如下:3、在Java中,多层继承是可以的,即一个类的父类
4、可以再去继承另外的父类,例如C类继承自B类,而B类又可以去继承A类,这时,C类也可称作A类的子类。下面这种情况是允许的。4.1类的继承4.1.1重写父类方法在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写。需要注意的是,在子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回值类型。4.1类的继承4.1.1重写父类方法从例程4-3的运行结果可以看出,当子类重写父类的方法后,子类对象将无法访问父类被重写的方法,为了解决这个问题,在Java中专门提供了一个super关键字用于访问父类的成员。例如访问父类的成员变量
5、、成员方法和构造方法。接下来分两种情况来学习一下super关键字的具体用法。1、使用super关键字调用父类的成员变量和成员方法。具体格式如下:4.1类的继承4.1类的继承4.1.1重写父类方法2、使用super关键字调用父类的构造方法。具体格式如下:4.1类的继承4.1.1重写父类方法例程4-4中在实例化Dog对象时一定会调用Dog类的构造方法。从运行结果可以看出,Dog类的构造方法被调用时父类的构造方法也被调用了。需要注意的是,通过super调用父类构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次。将例程4-4第11行代码去掉,再次编译程序会报错:4.1类的继承4.1.1重
6、写父类方法出错的原因是,在子类的构造方法中一定会调用父类的某个构造方法。这时可以在子类的构造方法中通过super指定调用父类的哪个构造方法,如果没有指定,在实例化子类对象时,会自动调用父类无参的构造方法。为了解决上述程序的编译错误,可以在子类中显示地调用父类中已有的构造方法,当然也可以选择在父类中定义无参的构造方法,现将例程4-4中的Animal类进行修改,如例程4-5所示。4.2final关键字final关键字可用于修饰类、变量和方法,它有“这是无法改变的”或者“最终”的含义,因此被final修饰的类、变量和方法将具有以下特性:1、final修饰的类不能被继承。2、final修饰的方法不
7、能被子类重写。3、final修饰的变量(成员变量和局部变量)是常量,只能赋值一次。4.2final关键字4.2.1final关键字修饰类Java中的类被final关键字修饰后,该类将不可以被继承,也就是不能够派生子类。接下来通过一个案例来验证,如例程4-6所示。4.2final关键字4.2.2final关键字修饰方法当一个类的方法被final关键字修饰后,这个类的子类将不能重写该方法。接下来通过一个案例来验证,如例程4-
此文档下载收益归作者所有