JavaとC#の違い{第1弾}:Interfaceの定義

個人的な経験と感想と偏見から語る「JavaとCSharpの違い」!

  • {Java}
    • A Methodだけでなく、StaticのAttributeやClassを定義できる。
    • B Methodにpublicと付ける。
  • {C#}
    • A Methodのみ。
    • B Methodにpublicを付けない。


o About A
JavaでよくあるInterfaceにMapのKey定数などを定義するやり方はCSharpでは利用できません。
元々そのやり方自体が賛否両論なので、こういう違いがあるからどうだってことはあまりないのですが、
時々、CSharpでついつい定義しようとしてCompileErrorになってることが...


o About B
InterfaceのMethodはどうせpublicだという視点から言うと、無駄が無いという意味でCSharpの方が優れているように思えます。
が、後からMethodをInterface化するときにCopyしてきたSubClassのMethodにはpublicが付いてて、「public消せ」と怒られるので自分的には面倒と思うときが...(Velocity経由のCSharp実装なもので)
(まあ、まずInterfaceから作るべきっていう突っ込みもありますが...)