私があなたを正しく理解していれば、共通メソッド AbstractViewを拡張して実装する抽象クラスを作成できます。抽象メソッドとを宣言する必要がありますが、実装はサブクラスに任せます。Viewinit()AbstractViewa()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のラッパーを作成する必要があります。これらの各サブクラスは、独自のメソッドとメソッドを拡張して実装しますが、(クラスに実装されているすべてのメソッドと共に)共通のメソッドを継承します。その後、必要な、、などの既存の動作のデリゲート メソッドを作成できます。変更しないでください。MyImageViewMyViewGroupMyTextViewAbstractViewa()b()init()ViewImageViewViewGroupTextView
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
}
}