抽象类中可不可以有private变量?可不可以有private方法?

debug148 2006-10-26 05:34:56

1:抽象类中可不可以有private变量?


2:可不可以有private方法?

请在答案后给出相应解释。谢谢!
...全文
4118 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
changzhang 2006-10-28
  • 打赏
  • 举报
回复
概念性问题
eaglezhao 2006-10-28
  • 打赏
  • 举报
回复
vcokno1() 是正确的。
synico 2006-10-27
  • 打赏
  • 举报
回复
不好意思,没看好题目就答了:(
楼主说的是都可以,可以把abstract class看成concrete class的半成品,区别仅仅是abstract class不能实例化,或者强制的给出了部分方法的声明,而对于继承这个abstract class的concrete class都必须实现这些方法。同时abstract class可以包含部分方法的实现,这和concrete class中的方法实现是相同的,所以abstract class中可以有private method和private parameter。可以自己写个例子验证一下是否正确。而且虽然abstract class是用作继承的,但是abstract class中的method和parameter却不一定,它们可以用来实现共有的逻辑行为动作,我想这就是将abstract class中的method和parameter声明为private的用意,就像concrete class中声明private method和parameter一样,为了向用户屏蔽掉某些方法的实现。
jspxnet 2006-10-27
  • 打赏
  • 举报
回复
都可以!

eureka0891 2006-10-27
  • 打赏
  • 举报
回复
可以的
java.util.Calendar就是
功能嘛,自己看吧
buyaowen 2006-10-27
  • 打赏
  • 举报
回复
好像语法可以,但是这么作有什么用啊?
synico 2006-10-27
  • 打赏
  • 举报
回复
呵呵,一般情况下不论abstract class还是concrete class都是public或默认的friendly,而不能是其他的访问级别。可以试一试你将class声明为protected或private,看能不能通过编译。但是,在语法上不仅abstract class可以是private的,而且interface也可以是private的,但仅当这个abstract class或interface为inner class的时候成立,而且可以通过编译,可以运行,至于这么做的意图就不清楚了。书上曾经有这部分的介绍,可以看一看。就TIJ上,inner class那一章。
xql80329 2006-10-27
  • 打赏
  • 举报
回复
写个简单 具体点的例子说明 不是说服力很强吗? 高手来个例子
luzi495 2006-10-27
  • 打赏
  • 举报
回复
可以有啊,如果时接口就不行。
glitdoor 2006-10-27
  • 打赏
  • 举报
回复
为什么不能叫变量啊
twozerozerosix 2006-10-27
  • 打赏
  • 举报
回复
http://www.eimhe.com/bbs/adget.php?id=379765

美河学习在线——专业视频课程下载基地
捏造的信仰 2006-10-27
  • 打赏
  • 举报
回复
1题楼主表达错误,应该叫成员而不是变量
xb1223 2006-10-26
  • 打赏
  • 举报
回复
可以有

不过抽象方法要继承
zhenyue123 2006-10-26
  • 打赏
  • 举报
回复
能有私有变量的
oracs 2006-10-26
  • 打赏
  • 举报
回复
抽象类可以有private field和method,并且抽象类中完全可以没有抽象方法。
抽象类只不过不能直接实例化罢了。
学习Java中 2006-10-26
  • 打赏
  • 举报
回复
汗,查查书
Parson 2006-10-26
  • 打赏
  • 举报
回复 3
抽象类是允许有private变量和private方法的,因为抽象类中可以有具体的方法实现,在这些具体方法实现中可以用自己定义为private的变量和private方法。
它不同于接口,因为接口中不能有方法的具体实现,其所有的方法都要求实现它的类来具体实现,所以,接口中的私有变量和私有方法就永远不会用到,所以接口中不会有private变量和private方法。
zw24127 2006-10-26
  • 打赏
  • 举报
回复
在内部类中可以定义私有的
vcokno1 2006-10-26
  • 打赏
  • 举报
回复
补充说明: 抽象类中不要求所有的方法都是abstract型
vcokno1 2006-10-26
  • 打赏
  • 举报
回复
楼上的同事们不要误导人。

Java允许抽象类中有private变量和private方法,因为按照抽象类的定义,抽象类与一般类的不同之外只在于它里面含有抽象的方法(也可能没有)。既然一般类中有private变量和private方法,抽象类中也能有。大家写一个抽象类就都明白了。
需要注意的是,抽象类中的abstract方法不能为private,因为它需要子类来继承它。
加载更多回复(3)

62,630

社区成员

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

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