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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蔡园园 黑马帝   /  2011-9-8 21:50  /  1922 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么枚举类不可以设置私有的抽象方法??

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

4 个回复

倒序浏览
关于抽象类中得成员访问权限,其基本上继承了类的特性,但由于抽象类之所以为抽象类,是因为它是作为父类来使用的,是等待子类去实现继承的,而类中private的权限只能是自己访问自己,定义为所以protected,default权限的父类也不能被子类继承,所以在抽象类中的方法为abstract时只有public这一种访问权限了。

楼主可能把抽象类方法的访问权限和枚举类中构造方法设为私有搞混了,定义枚举类中的构造方法为private,是因为枚举类中的元素对象只有固定的几个值,我们在定义了这些固定值之后,为了不让其他人再创建新的对象才将构造方法设为私有的。
[ 本帖最后由 郭亚飞 于 2011-09-08  23:02 编辑 ]

评分

参与人数 1技术分 +2 收起 理由
wangfayin + 2 回答的不错!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-8 23:17:20
藤椅
楼主的问题不对啊,楼上解释的很清楚抽象类中的方法为abstract时只有public这一种访问权限。唠叨几句。枚举也可以象一般的类一样添加方法和属性,你可以为它添加静态和非静态的属性或方法,这一切都象你在一般的类中做的那样.
抽象方法的作用是,你在此类里不必实现它,只是一个虚方法,所有的实现可以到继承此类的子类里面去做。你也可以理解为,抽象方法就是用来被重载的方法。你可以在子类里对它进行重载,也可以不进行重载。举个例就象定义了一个电器类,其中一个虚方法是显示图象。你用电视机继承电器类的时候就把显示图象的方法实现为电视机的显示方法,如果是用收音机类去继承电器,你就可以不用实现这个方法。
我想楼主是想问为什么枚举类不可以有抽象方法吧。
枚举类型是派生自System.Enum的一种独特的值类型,用于声明一组命名的常数。每种枚举类型均有一种基础类型,此基础类型可以使除char类型以外的任何整型。
枚举类是声明一组命名的常数,而抽象类显然不满足条件。希望能有帮助~

评分

参与人数 1技术分 +2 收起 理由
wangfayin + 2 回答很好!

查看全部评分

回复 使用道具 举报
枚举类不是抽象类,也不能被定义为抽象类,所以在抽象方法是不能定义的。 (抽象方法只能定义在抽象类中)
私有方法是在枚举类中是可以使用的。
[ 本帖最后由 张晨 于 2011-09-09  00:36 编辑 ]

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 对哦!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-9 01:39:34
报纸
简单点吧,看到一大堆文字都不想看了==首先假设你定义了抽象方法,那么这个类就是抽象类了,枚举的子类是抽象类,能行么?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马