>>675
呼び出し側が規定値を知ってる事が実装を公開している事にはならないだろう。
「規定値」そのものに意味がないならその具体値を示さなければ良いだけの話。
前半は何を言っているのか分からん。

(2) に関してはサブクラス化させたくないなら final 宣言しておけば良い。文法的に
メソッドの引数に DefaultHoge を使われたくないならパッケージプライベートか
インターフェース内の private な Inner クラスにでもしておけば良い。