当前位置:编程学习 > JAVA >>

java中接口和抽象的问题。

请问java中用抽象和接口的作用?对于抽象和接口的语法我知道,也知道怎么用,就是搞不明白,很多情况不用抽象也能达到效果,还非得用抽象。抽象和接口到底有什么作用?越详细越好
答案:为何设计抽象类:

抽象类的目的很简单,比如有些程序(比如画图程序)要定义好多好多图形类来使这个画图程序可以绘制各种图形,这些图形类肯定都有长和宽的属性,你总不至于气喘吁吁的给每一个图形类提供setX()(设置长)、setY()(设置宽)、getX()(求长)和getY()(求宽)的方法吧!这时候抽象类就派上用场了,你只要定义一个总的抽象图形类,把setX()(设置长)、setY()(设置宽)、getX()(求长)和getY()(求宽)的方法写进去并说明这些图形可能拥有的其他方法就OK啦!这样一来你不用定义那么多方法,二来如果你以后要搞项目开发,别人读你的程序也容易,三来你的具体子类如果继承这个总的图形类,只要你在总的图形类里声明了某些特定方法(比如画图形的方法),万一你在某个具体图形类里忘了实现这个方法,编译器也会自动提醒你。

 

为何设计接口:

因为Java不支持多继承,但有些程序中必须使用多继承(比如你要设计两个方法,一个要传入一个A类型的对象,另一个要传入一个B类型的对象,你想让另一个类的对象可以同时作为这两个方法的参数)。这时,面向接口编程应运而生。举个例子,接口A好比信用卡,接口B好比VIP卡,你想同时使用这两种接口,那你就可以实现他们。对于类也是这样,这个类就是一个多功能的类,可以让更多方法使用该类的对象。

这需要对面向对象有较深的理解,面象对象中多态很重要,也是整个面向对象思想的核心,比如写个程序,一堆动物的叫声,用面象对象来思考,肯定要定一个抽象类,然后所有动物去继承这个抽象类,下面它们具体发出声音就要用到多态了,假如再写一个能发出声音的东西,这时候通常就要定义接口,然后继承接口的可以是动物,也可以是电视,手机,总的来说,只有一个概念而没有具体的定义成接口,而有具体的就定义成抽象类,抽象类和接口对程序有良好的扩展性和维护性,比如又在这个程序中再加一个扬着头叫的动物,你肯定不能把它和之前的动物放一起,不然很乱

抽象 和 接口的使用  大多是为了程序的扩展和维护用的   真正的项目  实现功能时间不多   大多时间在于维护和扩展    

还有java 另一种多态形式 也是用接口实现的   比如util 包中的List  是一个接口

用的时候:List   list    =    new    ArrayList();  用接口 指向实现类   list 就代表了实现类的对象  

这中多态跟java反射机制配合使用   代码写着看起来很舒服    

1), 实现多重继承, 一个类可以实现多个接口,以及多态,另外,内部类也可用来实现多重继承
1), 如果你不希望一个类被创建对象,可以使用抽象类和接口
3), 非具体的类型可以定义为抽象类何接口

上一个:java和kjava有什么区别吗?
下一个:C++和JAVA语言有的相同点和不同点

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,