欠点といえば
interfaceの実装とクラスの継承との区別がつきづらい
その区別をつけるために必ずinterface名の頭にIをつけなきゃならないという決まり。
たまにつければいいだけなのに常につけろっていうのはねぇ