- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
单元3面向对象程序设计3.9抽象类与接口程序设计
接口及实现类接口的声明[访问权限修饰符]interface接口名[extends父接口名列表]{ [public][static][final]常量;[public][abstract]方法名();//定义没有方法体的抽象方法}在Java中接口是一种与类相似的结构,只包含常量和抽象方法。每个接口都被编译为独立的字节码文件。
接口及实现类接口的实现[访问权限修饰符]class类名implements接口名表{ }接口可实现多继承,一个类可以实现多个接口。实现接口的子类不能对接口中的变量重新赋值。
示例:接口及实现类创建教师类和学生类,两个类都实现了问候接口和工作接口,模拟上课的场景。publicinterfaceAction{//创建一个Action接口 publicvoidwork();//创建一个抽象方法work() publicvoidtalk();//创建一个抽象方法talk()}声明接口Action命名规范:接口名必须是合法的Java标识符,一般情况下,接口名可以是一个形容词或者名词,要求首字母大写。1
publicclassStudentimplementsAction{//创建一个Student类实现接口ActionpublicStringname;//定义姓名publicStudent(Stringname){//对姓名进行初始化this.name=name;}@Overridepublicvoidwork(){//重写work()方法System.out.println(name+:同学开始记笔记);}@Overridepublicvoidtalk(){//重写talk()方法System.out.println(name+:老师好);}}示例:接口及实现类声明Student类实现接口2接口必须有子类,子类依靠implements关键字可以实现多个接口。利用接口创建子类的过程,称为接口实现。
示例:接口及实现类publicclassTeacherimplementsAction{//创建一个Teacher类实现接口ActionpublicStringname;//定义姓名publicTeacher(Stringname){//对姓名进行初始化this.name=name;}@Overridepublicvoidwork(){//重写work()方法System.out.println(name+:老师开始上课);}@Overridepublicvoidtalk(){//重写talk()方法System.out.println(name+:同学们好);}}声明Teacher类实现接口3接口中的方法都是抽象方法,所以当子类实现接口时,必须实现接口中的所有抽象方法。
示例:接口及实现类publicclassTest{//创建一个Test类publicstaticvoidmain(String[]args){Action[]per={newStudent(张非),newTeacher(孙斌)};//通过相应的对象调用相应的方法实现控制台输出结果per[0].talk();per[1].talk();per[1].work();per[0].work();}}测试类Test利用实现类实例化,实现对象多态性,向上转型。接口与抽象类相似,不能使用new操作符创建接口的实例。运行时,根据实际创建的对象类型调用相应的方法实现。4
接口及实现类接口和抽象类的区别接口与抽象类的区别变量构造方法方法抽象类无限制子类通过构造方法调用父类构造方法,抽象类不能用new操作符实例化无限制接口所有变量必须是publicstaticfinal没有构造方法。接口不能使用new操作符实例化所有方法必须是公有的抽象实例方法。Java只允许为类的扩展做单一继承,但是允许
文档评论(0)