個人的な経験と感想と偏見から語る「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から作るべきっていう突っ込みもありますが...)