interfaceって、設計したところで、実装したクラスがきちんと実装してないと無意味ですよね?
abstract String getName();
ってメソッドがあったとしても、それを実装した各クラスのメソッドで、
return name; //正しい実装
return "UNKO!!"; //間違った実装
とかされたらダメで。
ということは、設計上の規約を実装に持ち込む(?)使い方をしないと意味ないってことですよね?