Java里如何实现多继承_第1页
Java里如何实现多继承_第2页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java里如何实现多继承接口(interface),接口被用来建立类与类之间关联的标准。JavacodepublicinterfaceITest{publicvoidtest();}publicclassTestImplimplementsITest{publicvoidtest(){System.out.println("test");}}抽象类(abstractclass),只要类中有一个抽象方法,此类就被标记为抽象类。实际上抽象类除了被继承之外没有任何意义。区别接口是公开(public)的,里面不能有私有的方法或变量,是用于让别人使用的,实现接口的一定要实现接口里定义的所有方法。而抽象类是可以有私有方法或私有变量的,实现抽象类可以有选择地重写需要用到的方法,但是必须实现里面所有的抽象方法。2•抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface(java中实现多重继承的方法之一)。3•抽象类中可以有自己的数据成员,也可以有非abstarct的成员方法。而在接口中,只能够有静态的不能被修改的数据成员(也就是必须是staticfinal的,不过在interface中一般不定义数据成员),而且所有的成员方法都是抽象的。抽象类和接口所反映出的设计理念不同。其实abstractclass表示的是"is-a"关系,interface表示的是"like-a"关系。(组合是"hasa"关系)接口中定义的变量默认是publicstaticfinal型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。抽象类中的变量默认是friendly型,其值可以在子类中重新定义,也可以重新赋值。一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。不是很建议具体类直接实现接口的。还有一种设计模式是面向接口编程,而非面向实现编程。其实接口是抽象类的延伸,可以将它看做是纯粹的抽象类,就是说接口比抽象类还抽象,还有设计接口的目的就是为了实现C++中的多重继承,不过java团队设计的一样更有趣的东西来实现这个功能,那就是内部类(innerclass)o内部类(innerclass)JavacodepublicclassOuterClass{//外部类privateclassInnerClass{}//内部类}定义放在一个类的内部的类我们就叫内部类。作用内部类可以很好的实现隐藏,也就是封装性。一般的非内部类,是不允许有private与protected权限的,但内部类可以内部类拥有外围类的所有元素的访问权限可是实现多重继承(这个特点非常重要,个人认为它是内部类存在的最大理由之一)可以避免修改接口而实现同一个类中两种同名方法的调用多重继承的实现类一JavacodepublicclassExample1{publicStringgetName(){return"luffyke";}}JavacodepublicclassExample2{publicintgetAge(){return25;}}类三JavacodepublicclassMainExample{publicclassTest1extendsExample1{publicStringgetName(){returnsuper.getName();}}publicclassTest2extendsExample2{publicintgetAge(){returnsuper.getAge();}}publicStringshowName(){returnnewTest1().getName();}publicintshowAge(){returnnewTest2().getAge();}publicstaticvoidmain(Stringargs[]){MainExampleexample=newMainExample();System.out.println("姓名:"+example.showName());System.out.println("年龄:"+example.showAge());}}大家注意看类三,里面分别实现了两个内部类Testl,和Test2,T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论