欢迎来到天天文库
浏览记录
ID:51496593
大小:101.66 KB
页数:2页
时间:2020-03-25
《【Android应用编程基础第16篇】Java语言中的接口.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、【Android编程基础第16篇】Java语言中的接口微价值网星河前面提到,Java语言可以实现类的继承(对应关键字extends),但只能实现单继承,也即不能同时继承多个类;如果我们刚好有这样的需求怎么办?这时候需要用到另外一个技术特性了,接口(interface)。接口的结构和抽象类非常相似,也具有数据成员与抽象方法,但与抽象类又有以下两点不同:1、接口里的数据成员必须初始化,且数据成员需要初始化为常量。2、接口里的方法必须全部声明为abstract,也即接口中,不能有普通方法,而必须全部是“抽象方法”。因为没有普通方法,具体在声明时,
2、abstract关键字可以省略。接口的抽象方法,需要由具体的类去实现,换种说法,每一个由接口实现的类,必须在类内部复写(override)接口中的抽象方法,且可自由地使用接口中的常量。由于接口里面有抽象方法,和抽象类一样的是,它不能实例化,也即不能直接创建对象。接口和抽象类的主要区别:接口是java实现多继承的一种机制,如果需要一个类去继承(extends)多个抽象方法的话,在Java语言中无法实现,所以就出现了接口的概念。一个类只可以继承一个父类(超类),但却可以实现(implement)多个接口。例如,我们定义了一个Person接口,包
3、括name、age、occupation共3个数据成员,加上talk抽象方法,现在需要定义Engineer类来实现这个接口,并继承其中的talk方法。UML模型如图所示,其中Person接口只显示了抽象方法。Engineer<>-namePerson-age+talk()-occupation+talk()图1Person接口及其实现类Engineer的UML模型图具体程序如下:interfacePerson{Stringname="风一";//初始化数据成员intage=26;Stringoccupation="工程
4、师";声明抽象方法talk()publicabstractStringtalk();}//Engineer类继承自Person类classEngineerimplementsPerson{//复写talk()方法publicStringtalk(){return"姓名:"+this.name+",年龄:"+this.age+",职业:"+this.occupation;}}执行下面的两行代码,可以考虑下,输出结果是什么。EngineerengerFengyi=newEngineer();System.out.println(engerFen
5、gyi.talk());补充说明,接口之间也可以派生,继承抽象方法,不过与类的单继承不同的是,一个接口可以同时继承多个接口,也就是同时继承了多个接口的抽象方法与常量,一般情况下,用得较多的还是通过具体的类来实现某些接口,例如一些UI组件的点击、触摸事件监听、数据处理完成之后的回调操作。微价值网(公号vjiazhi),专注移动互联网、App推广、盈利以及Android/iOS等技术基础培训。我们的微价值,就是你的大价值!欢迎投稿Android/iOS技术类文章,可以发到谋哥邮箱1351231599@qq.com,谢谢。
此文档下载收益归作者所有