Java中为什么要使用抽象类
来源:互联网 发布:wampserver端口 编辑:程序博客网 时间:2024/05/16 15:03
抽象类 抽象类与接口紧密相关。然接口又比抽象类更抽象,这主要体现在它们的差别上:1)类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。2)抽象类当中可以存在非抽象的方法,可接口不能且它里面的方法只是一个声明必须用public来修饰没有具体实现的方法。3)抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static final)。4)这一点也是最重要的一点本质的一点"抽象类是对象的抽象,然接口是一种行为规范"。
以上是它们本身的异同,下面再来从实际应用讲讲它们的异同!
不同之处:
1、定义
抽象类表示该类中可能已经有一些方法的具体定义,但是接口就仅仅只能定义各个方法的界面(方法名,参数列表,返回类型),并不关心具体细节。
1、用法
1)在继承抽象类时,必须覆盖该类中的每一个抽象方法,而每个已实现的方法必须和抽象类中指定的方法一样,接收相同数目和类型的参数,具有同样的返回值,这一点与接口相同。
2)当父类已有实际功能的方法时,该方法在子类中可以不必实现,直接引用的方法,子类也可以重写该父类的方法(继承的概念)。
3)而实现 (implement)一个接口(interface)的时候,是一定要实现接口中所定义的所有方法,而不可遗漏任何一个。
4)另外,抽象类不能产生对象的,但可以由它的实现类来声明对象。
有鉴于此,在实现接口时,我们也常写一个抽象类,来实现接口中的某些子类所需的通用方法,接着在编写各个子类时,即可继承该抽象类来使用,省去在每个都要实现通用的方法的困扰。
以上是它们本身的异同,下面再来从实际应用讲讲它们的异同!
不同之处:
1、定义
抽象类表示该类中可能已经有一些方法的具体定义,但是接口就仅仅只能定义各个方法的界面(方法名,参数列表,返回类型),并不关心具体细节。
1、用法
1)在继承抽象类时,必须覆盖该类中的每一个抽象方法,而每个已实现的方法必须和抽象类中指定的方法一样,接收相同数目和类型的参数,具有同样的返回值,这一点与接口相同。
2)当父类已有实际功能的方法时,该方法在子类中可以不必实现,直接引用的方法,子类也可以重写该父类的方法(继承的概念)。
3)而实现 (implement)一个接口(interface)的时候,是一定要实现接口中所定义的所有方法,而不可遗漏任何一个。
4)另外,抽象类不能产生对象的,但可以由它的实现类来声明对象。
有鉴于此,在实现接口时,我们也常写一个抽象类,来实现接口中的某些子类所需的通用方法,接着在编写各个子类时,即可继承该抽象类来使用,省去在每个都要实现通用的方法的困扰。
Java中为什么要使用抽象类
悬赏分:0 - 解决时间:2008-11-25 20:41 提问者: 水之心々 - 实习生 一级 最佳答案- 检举
回答者: lydawen - 同进士出身 八级 2008-10-28 14:04
我来评论>>提问者对于答案的评价:谢谢,很全面~~~~~~ 0 0
- Java中为什么要使用抽象类
- 为什么要使用抽象类
- Java中为什么要用抽象类来实现接口
- java-为什么要使用抽象类(第24集)
- 【转+分析】JAVA: 为什么要使用"抽象类"? 使用"抽象类"有什么好处?
- JAVA: 为什么要使用"抽象类"? 使用"抽象类"有什么好处?
- 转的 【转】JAVA: 为什么要使用"抽象类"? 使用"抽象类"有什么好处?
- 【转+分析】JAVA: 为什么要使用"抽象类"? 使用"抽象类"有什么好处?
- JAVA: 为什么要使用"抽象类"? 使用"抽象类"有什么好处?
- JAVA: 为什么要使用"抽象类"? 使用"抽象类"有什么好处?
- 为什么使用抽象类?
- Java中有抽象类为什么还要接口?
- Java基础-为什么要抽象?
- java中抽象类与抽象方法的使用问题
- java中抽象类与抽象方法的使用问题
- java中抽象类与抽象方法的使用问题
- java中抽象类与抽象方法的使用问题
- java中抽象类与抽象方法的使用问题
- html 使用js+css+html实现图片划过预览效果
- blockenemy
- Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)
- styles
- OpenWrt Makefile框架分析
- Java中为什么要使用抽象类
- 把jar包拷到WEB-INF/lib和放到工程之外的路径作为library引用有什么不同?
- 一些常用算法的代码(2)
- [置顶] oracle 内连接(inner join)、外连接(outer join)、全连接(full join)
- 内存缓存LruCache源码解析
- 整理出来的一个windows关机、锁定、重启、注销 API调用
- 构造、拷贝构造、赋值
- 有异步请求时注意程序执行的顺序
- 常用函数