私があなたを正しく理解していれば、共通メソッド AbstractView
を拡張して実装する抽象クラスを作成できます。抽象メソッドとを宣言する必要がありますが、実装はサブクラスに任せます。View
init()
AbstractView
a()
b()
public abstract class AbstractView extends View {
public void init() {
// common init implementation here
}
public abstract void a();
public abstract void b();
}
ImageView
既存のサブクラス ( 、ViewGroup
、など)のグループに動作を追加しようとしているため、おそらく各サブクラス ( 、、など)TextView
のラッパーを作成する必要があります。これらの各サブクラスは、独自のメソッドとメソッドを拡張して実装しますが、(クラスに実装されているすべてのメソッドと共に)共通のメソッドを継承します。その後、必要な、、などの既存の動作のデリゲート メソッドを作成できます。変更しないでください。MyImageView
MyViewGroup
MyTextView
AbstractView
a()
b()
init()
View
ImageView
ViewGroup
TextView
public class MyImageView extends AbstractView {
private ImageView wrappedImageView;
public MyImageView(Context context) {
wrappedImageView = new ImageView(context);
}
// TODO: Implement other constructor wrappers
final void clearColorFilter() {
wrappedImageView.clearColorFilter();
}
// TODO: Implement other method wrappers
@Override
public void a() {
// specific implementation here
}
@Override
public void b() {
// specific implementation here
}
}