布団に入ってぼーっと考えていた時に、プログラミング的な概念を用いれば「自由」と「請求権」の違いを記述的に分類することができるような気がした。
請求権を抽象的権利(ここでは法による具体化を待たねば本来の請求ができない権利をいう)と具体的権利(同様に法による具体化を待たずとも本来の請求ができる程度まで憲法上具体化された権利のことをいう)、あと自由をオブジェクト指向言語で表現すれば

自由:privateフィールド
抽象的権利:abstructメソッド
具体的権利:単なるメソッド(あるいはfinalメソッド)

と表現において区別することができるのではないかと。

privateフィールドは直接の変更が効かず、そのクラスに属するメソッドからしか参照できない(内在的制約説)。また、フィールドだから方向性を持つものでもない(私人間効力論?)。
abstructメソッドは実装クラスによる実装をまたねば処理の内容は不明であり(法による具体化の要請)、もし実装をしていないクラスがインスタンスを生成しようとすればエラーになる(立法不作為の違憲性)。
具体的権利については怪しいが、特別法は一般法に優先する、の法原理からすれば、Overrideできるようfinal宣言しないほうが適切とも思える。しかし、Overrideしてはまずい権利もあるのかもしれないのでその点は不明。

憲法とOOPはとてもよく似ているのではないか、というのが法学部に入学して以来の感心事なので、この点は突き詰めて考えてみたいところではある。