什么是抽像类!抽像类和非抽像类有什么区别!抽像类相对于非抽像类有什么优点!

源码小严 2010-06-30 09:32:52
抽像类和非抽像类有什么区别!抽像类相对于非抽像类有什么优点!如果可以的话!还想再问一下!什么接口!可能理论了!因为平时用不到!再者看msdn看不懂!所以就想问一下!打发一下好奇心!谢谢!
...全文
175 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ang1elove 2010-07-14
  • 打赏
  • 举报
回复
学习者。
智鹿软件 2010-07-02
  • 打赏
  • 举报
回复
如果一个方法没有实现的代码,那么它必须被声明为抽象的方法。
public abstract String getName();

如果一个类包含有抽象方法,那么它必须被声明为抽象类。
public abstract class Account{
public abstract String getName();

}

抽象类不能实例化----不能生成对象。
可以定义一个抽象类的引用。
牛飞阳 2010-07-02
  • 打赏
  • 举报
回复
抽象类在一定程度上要好一些
首先就是低耦合度,低耦合是的代码更加灵活,而且方便后期维护和开发
其次就是容易实现,一种比较特殊的抽象类就是接口,接口技术博大精深啊!
JJ___JJ 2010-07-01
  • 打赏
  • 举报
回复
说道接口的用处, lz以后有机会去接触下敏捷开发,你就会知道接口是多么的神奇了。
还有,这种问题, lz应该自己去百度下, 学java的, 搜索能力是必须的。
Mars_Yuan 2010-06-30
  • 打赏
  • 举报
回复
抽像类不能定义该类的对象,但可以定义继承他的非抽象类对象。
非抽像类可以定义该类的对象。

抽象类 顾名思义就是抽象的类,优点就是抽象,利于系统的扩展和维护。因为jvm可以在运行时动态决定该使用哪一个继承这个抽象类的具体类。

比如我有个抽象类A,定义了通用的数据库操作(抽象的操作),
类B(用于MySQL)继承类A并且实现了类A的数据库操作方法(用于MySQL的具体的操作)
类C(用于Oracle)也继承类A并且实现了类A的数据库操作方法(用于Oracle的具体的操作)
现在业务逻模块需要对数据库进行操作,我们在业务逻辑操作的时候用抽象类A,而不是具体的类B或C
这样业务逻辑就做到了与具体数据库产品无关。
但我们现在用的数据库是MySQL的时候,我们只需将类B传入业务逻辑模块中。JVM自己会判断该对数据库的操作是哪一数据库产品。
当我们现在环境变了,是用Oracle的时候,我们也只需将类C传入业务逻辑模块中。其中业务逻辑并不会被修改。

当然 接口也有这样的功能,而且接口比抽象类更抽象。抽象类里面还可以定义具体方法,只要子类不覆盖这个方法,那么使用的还是父类的方法逻辑。而接口里面只有方法的声明,具体的方法逻辑由实现接口的类来决定。

如果要设计出优秀的系统,必须要学会使用好这些东西。OOD经常提起的就是 针对抽象和接口编程

系统需要高内聚 低耦合 易于扩展 和 维护 这些都是良好设计的要求。建议你去看下 设计模式 就知道 抽象类和接口的作用了。

以上是我的经验之谈 有什么不对之处 还请 CSDN 网友们提出 TKS
xcehn 2010-06-30
  • 打赏
  • 举报
回复
同楼上 同时接分
qingzhe2008 2010-06-30
  • 打赏
  • 举报
回复
回家翻书去。。。。。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧