1

アプリのロゴが付いたカスタムタイトルバーを含めるクラスを作成しました。これはうまく機能しますが、私のクラスの大部分では、その機能と、たとえばListActivityの機能を継承できる必要があります。何をすべきか?

助けていただければ幸いです。

4

2 に答える 2

8

継承よりも構成(および委任)を優先する必要があります:

   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();
       }
   }
于 2012-12-10T19:48:57.073 に答える
3

Javaでは、次のものを使用することはできません。

class MyClass extends ClassA, ClassB { ... }

何をしているかによっては、次のものを使用できる場合があります。

class ClassB extends ClassA { ... }

class MyClass extends ClassB { ... }
于 2012-12-10T19:43:15.060 に答える