java提高篇之抽象类与接口-编程开发技术

java提高篇之抽象类与接口-编程开发技术

ID:30780220

大小:60.50 KB

页数:8页

时间:2019-01-03

java提高篇之抽象类与接口-编程开发技术_第1页
java提高篇之抽象类与接口-编程开发技术_第2页
java提高篇之抽象类与接口-编程开发技术_第3页
java提高篇之抽象类与接口-编程开发技术_第4页
java提高篇之抽象类与接口-编程开发技术_第5页
资源描述:

《java提高篇之抽象类与接口-编程开发技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、java提高篇Z抽象类与接口-编程开发技术java提高篇之抽象类与接口原文出处:chenssy接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者Z间对抽象概念的支持有很大的相似,其至可以互换,但是也有区别。一、抽象类我们都知道在而向对象的领域一切都是对象,同时所冇的对彖都是通过类来描述的,但是并不是所有的类都是来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类

2、来支撑它,那么这样的类我们称它为抽象类。比如newAnimal(),我们都知道这个是产生一个动物Animal对象,但是这个Animal体长成什么样了我们并不知道,它没有一个具体动物的概念,所以他就是一个抽象类,需要一个具体的动物,如狗、猫来对它进行特定的描述,我们才知道它长成啥样。在面向对象领域市于抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能实例化的。同时,抽象类体现了数据抽象的思想,是实现多态的一种机制。它定义了一组抽象的方法,至于这组抽象方法的具体表现形式冇派生类来实现。同时抽彖类捉供

3、了继承的概念,它的出发点就是为了继承,否则它没有存在的任何意义。所以说定义的抽象类一定是用来继承的,同吋在一个以抽象类为节点的继承关系等级链中,叶子节点一定是具体的实现类。(不知这样理解是否有错!!!高手指点…•)在使用抽象类时需要注意几点:1、抽象类不能被实例化,实例化的工作应该交由它的子类来完成,它只需要有一个引用即可。2、抽象方法必须由子类来进行重写。3、只要包含一个抽象方法的抽象类,该方法必须要定义成抽象类,不管是否还包含有其他方法。4、抽象类屮可以包含具体的方法,当然也可以不包含抽象方法。5、子类屮的抽象方法

4、不能与父类的抽象方法同名。6、abstract不能与final并列修饰同一个类。7、abstract不能与private^static^final或native并列修饰同一个方法。、??????实例:定义一个抽彖动物类Animal,提供抽彖方法叫cryO,猫、狗都是动物类的子类,由于cry()为抽象方法,所以Cat、Dog必须要实现cry()方法。如下:publicabstractclassAnimal{publicabstractvoidcry();}publicclassCatextendsAnimal{©Over

5、ridepublicvoidcry(){System,out.printl猫叫:口苗口苗・・・");}}publicclassDogextendsAnimal{©Overridepublicvoidcry(){System,out.printin(〃狗叫:汪汪・・・〃);}publicclassTest{publicstaticvoidmain(String[]args){Animalal=newCeit();Animala2=newDog();al.cry();a2・cry();}Output:猫叫:口苗口苗・・・狗

6、叫:汪汪・・・创建抽象类和抽象方法非常有用,因为他们可以使类的抽象性明确起来,并告诉用户和编译器打算怎样使用他们•抽象类还是有用的重构器,因为它们使我们叮以很容易地将公共方法沿着继承层次结构向上移动。(From:Thinkinjava)二、接口接口是一种比抽彖类更加抽彖的“类”。这里给“类”加引号是我找不到更好的词来表示,但是我们要明确一点就是,接口木身就不是类,从我们不能实例化一个接口就口J以看出。如newRunneibleO;肯定是错误的,我们只能new它的实现类。接口是用来建立类与类之间的协议,它所提供的只是一种

7、形式,而没有具休的实现。同时实现该接口的实现类必须要实现该接口的所有方法,通过使用implements关键字,他农示该类在遵循某个或某组特定的接口,同时也农示着"interface只是它的外貌,但是现在需要声明它是如何工作的”。接口是抽象类的延伸,javaT保证数据安全是不能多重继承的,也就是说继承只能存在一个父类,但是接口不同,一个类可以同时实现多个接口,不管这些接口之间有没有关系,所以接口弥补了抽象类不能多重继承的缺陷,但是推荐继承和接口共同使用,因为这样既可以保证数据安全性又可以实现多重继承。在使用接口过程中需要

8、注意如下几个问题:1、个Intcrfacc的方所有法访问权限自动被声明为public。确切的说只能为public,当然你可以显示的声明为protected、private,但是编译会出错!2、接口中可以定义“成员变量”,或者说是不可变的常量,因为接口中的“成员变量”会自动变为为publicstaticfinal。可以通过类命名直接

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。