Re: [問題] private constructor 和abstract
※ 引述《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
推
05/21 13:59, , 1F
05/21 13:59, 1F
推
05/21 14:21, , 2F
05/21 14:21, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):