关于抽象类??

fuyou001 2009-09-18 11:39:06
抽象类里的构造方法是做什么用的,它都不能被实例化,是为给子类调用 的吗

为什么子类可以调用父类(抽象类)的构造方法,构造方法可以调用 ,是不是意味着可以实例化

如果抽象类的构造方法是public 的话,那其它任何都可以实例化抽象类
...全文
173 14 打赏 收藏 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
amdgaming 2009-09-20
  • 打赏
  • 举报
回复
这个研究研究 对基础还是不错的。
ouyangyh 2009-09-19
  • 打赏
  • 举报
回复
有些时候,要通过构造函数,进行正确的初始化
而不是让对象的域的默认值
ouyangyh 2009-09-19
  • 打赏
  • 举报
回复
有些时候,要通过构造函数,进行正确的初始化
而不是让对象的域的默认值
oklinsong 2009-09-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gesanri 的回复:]
任何类里都有构造方法,抽象类也不例外,你不写的话系统就默认生成一个,不管怎么说必须有一个

子类调用父类的构造方法?只有在生成子类实例的时候才会去调用父类的构造方法

就算抽象类的构造方法是public的,其它任何类也不能实例化抽象类
[/Quote]
顶,不写也会有一个默认的空的构造方法。new一个子类的时候,子类会去调用父类的构造方法。
Gere Yeung 2009-09-19
  • 打赏
  • 举报
回复
每个基本理论都要理解。
fuyou001 2009-09-19
  • 打赏
  • 举报
回复
再顶下
kj111111 2009-09-19
  • 打赏
  • 举报
回复
学习学。。。。。。。。。。
qjcslgnhwayagain 2009-09-19
  • 打赏
  • 举报
回复
是为了实现面向对象中的多态性
paullbm 2009-09-19
  • 打赏
  • 举报
回复
个人认为定义接口和抽象类的区别在于:


接口中都是不能确定如何去做,但又必须去做的方法!
抽象类中则是有一些可以确定的方法,有一些不能确定的方法!
boringame 2009-09-19
  • 打赏
  • 举报
回复
我就简单明了的总结一句吧:
是为了给子类调用的。
dajiadebeibei9 2009-09-18
  • 打赏
  • 举报
回复
抽象类不象具体类那样描述一类具体事物,它是提取多种具有相似性的具体事物的共同特征而产生的,比如,helicoptor, jet, fighter父类plane,有start(),takeOff(),speedUp(),changeDirection()等方法,这是共性,但现实中有一个具体的plane吗?没有,它是抽象出来的,根本不存在。所以实例化一个plane是没有意义的,因此面向对象程序设计机制禁止对象实例化
gesanri 2009-09-18
  • 打赏
  • 举报
回复
任何类里都有构造方法,抽象类也不例外,你不写的话系统就默认生成一个,不管怎么说必须有一个

子类调用父类的构造方法?只有在生成子类实例的时候才会去调用父类的构造方法

就算抽象类的构造方法是public的,其它任何类也不能实例化抽象类
yanliang_xt 2009-09-18
  • 打赏
  • 举报
回复
不可以显式用new 去实例化一个抽象的类。但是抽象类本身可以实例化的。只是它的构造方法不可能直接调用,而是由jvm来调用的。

想想如果不能实例化一个抽象类,那么抽象类的子类就必须也是一个抽象类,这样无限的延生下去,没有尽头。毕竟一个抽象类的子类是可以实例化的,而在实例化时就必须实例父类。
ZangXT 2009-09-18
  • 打赏
  • 举报
回复
注意构造方法是进行“初始化”做的,不是创建对象或者“实例化”的。
比如new Test();
new导致两个操作,第一步是分配内存创建对象,并完成各个变量的初始化(比如int、short、char等类型为0,double、float为0.0,boolean为false,引用为null等)。第二步是执行构造方法。

62,620

社区成员

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

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