请问java抽象类的作用是什么?

永远的明日 2007-11-29 10:36:05
请问java抽象类的作用是什么?

是为了实现多态还是?

请大虾赐教````
...全文
22234 43 打赏 收藏 转发到动态 举报
写回复
用AI写文章
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
wushigan 2012-07-24
  • 打赏
  • 举报
回复
看的我头都大了,抽象的一腿啊,学习
smile清风 2012-05-24
  • 打赏
  • 举报
回复
看到上面的,一个一个说LZ,这是何意?你们很牛X吗?真的是..有必要吗?
lrstom 2011-12-25
  • 打赏
  • 举报
回复
这个版本,怎么楼主不给分的。。。我也回答下: 抽象类就是为了实现多态现象,就是为能对父类的不满,就是现实特征。。
风中de孤叶 2011-10-18
  • 打赏
  • 举报
回复
抽象类最大的作用就是优化程序,~~就拿上面的例子来说,假如每个类都写一个方法,而且实现方法是相同的~~~参数也是相同的,那么需要的代码量就很大了!如果有了抽象类,就可以把他们归为一起!这样节省了大量的代码量!
sunshine_99 2011-07-07
  • 打赏
  • 举报
回复
可以这么看,确定了某种类型一定会有一个方法,但是这个方法具体做些什么事还不知道,必须要细化到子类类型时才知道

比如有个“员工”类,这个类型一定会有一个 doWork 方法,就是工作。但是一个“员工”的“工作”应该如何展开,需要到子类时才可以确定

比如有子类“清洁工”,它的工作就是“打扫”
子类“会计”的工作就是“算账”
子类“程序员”的工作就是“编写程序”

这时“员工”类就应该做成抽象类,它的 doWork 方法是抽象的
乃树 2011-05-07
  • 打赏
  • 举报
回复
原来是这样
yijiulove 2011-04-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 qybao 的回复:]

给LZ一个例子,LZ自己体会吧

Java code

abstract class A {
public abstract void doSomething();
}

class B extends A {
public void doSomething() {
System.out.println("do B");
}
}

class C e……
[/Quote]
这个能编译通过吗?
wuxiaoqun2008 2011-04-03
  • 打赏
  • 举报
回复
学习学习
woshixiaobu 2011-03-19
  • 打赏
  • 举报
回复
嗯,有用啊!正在纠结这个问题
NiklausXu 2011-03-04
  • 打赏
  • 举报
回复
、、、、、、、
woshilitao5 2011-01-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhangbaokun 的回复:]
abstract class A {
public abstract void doSomething();
}
[/Quote]
这个地方改成:
class A {
public void doSomething(){};
}
也是一样的运行结果,不知道它们有什么区别,谁才是更好的选择?请不吝赐教,谢谢!
战争迷雾 2010-12-14
  • 打赏
  • 举报
回复
顶,刚学习到抽象类和抽象方法,
hyp5634 2010-11-03
  • 打赏
  • 举报
回复
据我所知的话:抽象类可以这样理解——不能被实例化的类,希望大家多提意见,互相学习,共同进步。
zhangyun07820117 2010-09-03
  • 打赏
  • 举报
回复
为了用同一个方法做不同的事儿
kimyouxi 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 huangjiang0514 的回复:]
楼主刚学java?你问这个问题老实说无论别人怎么说你都不会真正明白的。既然是抽象类,那什么是抽象呢,就是抽掉它的象(在java里面象就是对象实例)就是不能实例化,就是有神而无形,感觉得到而看不到就这个意思了。抽象类与多态实现重构里面的将多态来代替类型代码。说是没用的,主要是你看看那些有用到抽象类的和没用抽象类的看看有什么区别,这样的好处是什么。一般来说抽象类就像是提取公因式方便管理更具结构性,可扩……
[/Quote]
你说的对,作为新人是应该循序渐进的,但这个JAVA作为面对象的编程软件,API本身就很不系统。象编数据库的话,要从顶部的结构设计开始的,使得程序很清晰。但现在的JAVA的教程也好,JAVA的API也好,都是从中间开始,然后讲细节,再倒过来讲头,搞得很迷糊。
我也是刚开始学,就是希望有本按项目开发为切入点,从头到尾的讲JAVA的教程,但找不到。要有这种教程的话,可能就不会提为什么要用3p+1d、静态变量,静态方法、抽象方法,实际程序中什么时候要用这些修饰符等问题了。
hedajisuanji 2010-05-16
  • 打赏
  • 举报
回复
学习了
huangjiang0514 2010-04-02
  • 打赏
  • 举报
回复
楼主刚学java?你问这个问题老实说无论别人怎么说你都不会真正明白的。既然是抽象类,那什么是抽象呢,就是抽掉它的象(在java里面象就是对象实例)就是不能实例化,就是有神而无形,感觉得到而看不到就这个意思了。抽象类与多态实现重构里面的将多态来代替类型代码。说是没用的,主要是你看看那些有用到抽象类的和没用抽象类的看看有什么区别,这样的好处是什么。一般来说抽象类就像是提取公因式方便管理更具结构性,可扩展行和复用行,刚学的话你只要记住这个思想是什么就行了,到后面你就能体会到这样做到底有什么好处。你迷惑的可能是就算不用抽象类也同样能实现一样的功能,那为什么要试用抽象类呢?对吧,你想太多了,这些只有到了研究生这个层面才会深入了解。就好像以前我有个同学去问老师相对论是什么,为什么需要相对论,提出相对论含义是什么。。。试问一个中学老师有怎么会懂这个东西呢,全世界也就那几个人懂,所以java当中面相对象这句话含义很深,你现在做为一个刚学的人就把自己当作一个新手对象,就是懂得怎么用,而不是去研究为何要用,不用有什么区别。当然这瑾瑾是对新手而言,当你觉得基本上都会用的时候,为了更上一层楼那就不免得要去了解一番。这个只是个人的一些想法,好了最后这里祝你学习快乐。
bushichaoting 2010-03-27
  • 打赏
  • 举报
回复
请教8楼:
为什么用 A a1 = new B();而不是后面的 C c = new C();这两个有什么区别?还有就是后面用了doSome(a1);而不是doSomething(a1);
maeyea 2010-01-18
  • 打赏
  • 举报
回复
非党的好,学习了。
cosmindlhl 2009-10-13
  • 打赏
  • 举报
回复
补充:抽象类是为了开发大型项目而设计的规则,以便于团体开发


email:root_shell@163.com
加载更多回复(23)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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