作者KOFXI ()
看板java
标题Re: [问题] private constructor 和abstract
时间Tue May 21 09:12:30 2013
※ 引述《markbrother (马克兄弟)》之铭言:
: 请教各位
: 如果今天我写了一个class
: 目的是提供里面的static方法给人呼叫 不让人建构此class的物件
: 那把这个class设成abstract(不过里面没有任何abstract的方法)
: 和把建构子的存取权限设成private
: 这两个方法有何差别呢 纯粹好奇
就我的观点来看
你说的两个方法就功能面上来说 , 都可以让使用者无法建构该物件
所以功能面都是OK的....
但是就意义层面上来说
1.把class物件宣告为abstract ,
一般来说abstract物件会宣告abstract方法来让继承物件去使用
既然继承物件要可以实作并呼叫abstract方法 => 该物件要能被建构出来
(因为static方法也不能被宣告为 abstract)
所以该方法是定义抽象方法去继承实作,跟你想要的功能意义不同,
只是刚好抽象类别本身无法实体化
2.把建构子权限设定为 private
让使用该物件的设计师了解该物件的建构子是不允许被呼叫的,
因此就意义上来看,2比较符合你想要的功能
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.34.94.193
1F:推 markbrother:我懂了 太感谢您了! 05/21 13:59
2F:推 PsMonkey:顺便加个 final 这样 XD 05/21 14:21