A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李敬 中级黑马   /  2012-8-24 04:19  /  2845 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李敬 于 2012-8-24 04:31 编辑

我这里问题比较多,多多包含.
枚举类中的构造函数一定要私有吗?
抽象类中的构造函数一定不能私有吗?
如果一个枚举类中有抽象的方法,按照抽象类不能实例化的说法,那么枚举就不是不能定义那些指向本类对象的引用常量了吗?
如果按照抽象类不能被实例化的说法,那枚举类还有必要私有化构造函数吗?
抽象类不能被实例化,那么他的工作原理是什么呢?

这里不知道晕在哪,请指教.

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
本帖最后由 刘圣伟 于 2012-8-24 07:16 编辑

抽象类就是还不知道具体什么对象,会使用里面的方法,而定义的类,
它是可以使具体的类来继承他,来重写里面的方法,来实例化对象。
一般在API中,看到抽象的类,想要用的话,再找他的子类,看子类中,哪个可以实例化,需要的再拿来用。

抽象类中的抽象方法要被使用,必须由子类复写所有抽象方法后,建立子类对象调用。
如果只复写部分抽象方法,那么该子类还是一个抽象类。

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 送君一程!

查看全部评分

回复 使用道具 举报
每个枚举的成员其实就是您定义的枚举类型的一个实例(Instance)。换句话说,当定义了一个枚举类型后,在编译时刻就能确定该枚举有几个实例,分别是什么。在运行时期我们无法再使用该枚举类型创建新的实例了,这些实例在编译期间就已经完全确定下来了。
回复 使用道具 举报
首先,明确枚举的作用:限制对象的个数,表示只能有这个几个对象。
把枚举看成特殊类,那么不让外面创建对象,根据单例思想,就是将构造方法私有化,只有这样外部才不可能创建枚举的新对象。
然后,需要那几个对象,在枚举中创建几个,从而固定下来了。
而抽象类的左右:就是为了继承而存在,当构造方法私有化了,不就没法创建子类对象了...
理解抽象类和枚举的作用,以及构造函数的作用,应该可以理解这些了。
至于抽象类不能实例化,这是JVM的规定吧,就想象成字符串不能赋给int类型一样,是规定。
抽象类就是被继承存在的,哦了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马