第4章 面向对象编程(多态、抽象类、接口) (new)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第4章面向对象编程(多态、抽象类、接口)一、多态多态是面向对象的又一特点。多态分为编译时多态和运行时多态1.编译时多态:由方法重载实现的静态多态见教材P114例4-232.运行时多态:子类继承父类时产生子类的对象可以申明为父类的对象(向上转型)若父类是Father类,子类是Children类,可以这样声明:Fatherchild;child=newChildren();P115例4-24多态性使用之二(运行时多态)二、抽象类1.定义类前有abstract修饰时,称为抽象类。声明格式如下:abstractclass类名称{成员变量;成员方法;}2.特点(1)抽象类不能被实例化,实例的建立通常由其子类去完成。(2)抽象类中可以没有抽象方法,但包含有抽象方法的类一定是抽象类。抽象方法:声明格式如下:abstract返回值类型方法名([参数列表]);如:abstractvoidstudy();(3)抽象类中的抽象方法必须全部由子类覆盖,否则子类继续被申明为抽象类(4)抽象类及抽象方法不能被final修饰三、最终类和最终方法类前有关键字final时,表示该类是最终类声明格式如下:finalclass类名称{成员变量;成员方法;}最终类不能作为父类被其它类继承方法前有关键字final时,表示该方法是最终方法声明格式如下:final返回值类型方法名([参数列表]){方法体;}abstract、final不能同时修饰类、成员方法,否则将导致编译错误说出下列程序语句错误原因:1.publicfinalclassA{……}classBextendsA{……}2.publicabstractfinalclassA{……}3.publicabstractclassK{abstractfinalvoidaa();}五、接口1、接口的申明[public]interface接口名[extends父接口名列表]{常量定义方法定义}说明:(1)接口中的成员变量都必须设置初始值,且默认为public、final、static型。(2)接口中定义的方法默认都是public、abstract类型的抽象方法。如:interfaceAnimal{inti=5;//默认为publicstaticfinalvoidmodelOfAction();//默认为publicabstract}(3)当接口由public修饰时,表示该接口是公共接口,可以被所有的类和接口使用,否则只能被同一包中的其它接口和类使用。(4)保存接口时,其命名方法类似于保存类的文件命名方法,即保存接口的文件名必须与接口名相同。一个文件中可以有多个接口,但最多只有一个接口为public型,其它的接口默认。2、接口的实现类实现某接口,利用关键字implements,如:[类修饰符]class类名称[extends父类名]implements接口名列表{[变量的定义及初始化;][方法的定义及方法体;]}几点说明:(1)一个类可以实现多个接口,在implements关键字后,逐个列出需要实现的接口名。(2)一个类在实现接口中定义的所有的抽象方法时,必须与接口中定义的方法完全一致,即具有相同的方法名、参数列表和返回值。(3)由于接口中的抽象方法默认都是public类型的,因此在类中实现方法时,方法名前必须写出public,否则会出错。(4)接口与抽象类类似,不能被实例化例:接口的实现interfaceAnimal{voidmodelOfAction();voidspeak();}classFishimplementsAnimal{publicvoidmodelOfAction(){System.out.println(Fishcanswim!);}publicvoidspeak(){System.out.println(Fishisbubbing!);}}classBirdimplementsAnimal{publicvoidmodelOfAction(){System.out.println(Birdcanfly!);}publicvoidspeak(){System.out.println(Birdissinging!);}}子类实现接口中的方法必须使用public;3、接口的继承一个接口不能实现另一个接口,但可以继承多个接口如:interfaceA{intmethodA();}interfaceB{intmethodB();}interfaceCextendsA,B{//接口C称为复合接口intmethodC();}子类除了实现父接口中的抽象方法,还必须实现间接父接口中的抽象方法,否则,该类只能成为抽象类。如:classMyClassimplementsC{publicintmethodC(){return'c';}publicintmethodB(){return'b';}publicintmethodA(){return'a';}系统定义的接口见教材p125

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功