クラス設計?に関する質問です。

JTableを継承して、いくつかの追加機能を設けたExtendedJTableを作りました。
この追加機能を利用するにはTableModel側にも拡張が必要で、
TableModelインターフェイスを拡張したサブインターフェースExtendedTableModelを作りました。

この拡張されたTableModelを実装したテーブルモデル用に
ExtendedJTable#setModel(ExtendedTableModel tablemodel){ super(tablemodel); }
を定義したのですが、JTableを継承したときに、
JTable#setModel(TableModel tablemodel)も継承しているので、
追加機能に対応していないテーブルモデルを設定することもできてしまいます。

この場合追加機能を用いようとしても当然無理なので、どうにかしたいのですが、
どのようにするのがよいのでしょうか。
JTable#setModel(TableModel tablemodel)を潰すことはできませんよね。
設計に何か根本的な間違いがあるのでしょうか。

class ExtendedJTable extends JTable{
public void setModel(ExtendedTableModel tablemodel){ super(tablemodel); }

public void somethingWonderful(){ //JTable追加機能
 ExtendedTableModel tablemodel=(ExtendedTableModel) getModel();
 //以下追加機能のロジック
 tablemodel.addedTableModelMethod();
 //etc...

}
}
interface ExtendedTableModel extends TableModel{
public void addedTableModelMethod(); //JTable#extendedWonderfulSomething()で利用されるメソッド
}