アプリのロゴが付いたカスタムタイトルバーを含めるクラスを作成しました。これはうまく機能しますが、私のクラスの大部分では、その機能と、たとえばListActivityの機能を継承できる必要があります。何をすべきか?
助けていただければ幸いです。
アプリのロゴが付いたカスタムタイトルバーを含めるクラスを作成しました。これはうまく機能しますが、私のクラスの大部分では、その機能と、たとえばListActivityの機能を継承できる必要があります。何をすべきか?
助けていただければ幸いです。
継承よりも構成(および委任)を優先する必要があります:
public interface FirstClassInterface {
void method1();
}
public interface SecondClassInterface {
void method2();
}
public class FirstClass implements FirstClassInterface {
// ...
}
public class SecondClass implements SecondClassInterface {
// ...
}
public class FirstAndSecondClass implements FirstClassInterface , SecondClassInterface
{
private FirstClassInterface firstclass;
private SecondClassInterface secondclass;
public FirstAndSecondClass(FirstClassInterface firstclassinterface, SecondClassInterface secondclassinterface) {
this.firstclass= firstclassinterface;
this.secondclass= secondclassinterface;
}
public void method1() {
this.firstclass.method1();
}
public void method2() {
this.secondclass.method2();
}
public static void main(String[] args) {
FirstAndSecondClass t = new FirstAndSecondClass(new FirstClass(), new SecondClass());
t.method1();
t.method2();
}
}
Javaでは、次のものを使用することはできません。
class MyClass extends ClassA, ClassB { ... }
何をしているかによっては、次のものを使用できる場合があります。
class ClassB extends ClassA { ... }
class MyClass extends ClassB { ... }