【Android】シロのステップアップインタフェースと抽象クラスの使用


1、インタフェース類interface
インタフェースの定義:
他の人が使用できる方法で、インタフェースには方法の定義だけが実現されていません.
Android clickの傍受を例に挙げます.
定義:
public class MyButton  {
    private OnMyClickListener myClickListener ;

    public interface OnMyClickListener{
        void onClick(String s);
    }

    //     
    public void setOnMyClickListener( OnMyClickListener onMyClickListener){
        this.myClickListener = onMyClickListener ;
    }

    private void whenButtonClick(){
        myClickListener.onClick("test...");
    }
}

次の操作を行います.
MyButton myButton = new MyButton(this);

myButton.setOnMyClickListener(new MyButton.OnMyClickListener() {
    @Override
    public void onClick(String s) {

    }
});

//         
myButton.whenButtonClick();

2、抽象類abstract
定義:
抽象メソッドを含むクラスを抽象クラスと呼び,抽象メソッドとインタフェースは実装されていないメソッドを指す.
インタフェースと抽象クラスの違い:
a、インタフェースは公開されており、プライベートな方法や変数はなく、他の人に使用させるために使用されています.抽象クラスには、プライベートメソッドまたはプライベート変数があります.
b、インタフェースを実現するには、インタフェースで定義されたすべての方法を実現しなければならない.  抽象クラスを実装するには、必要な方法を選択的に書き換えることができます.
c、1つのクラスは複数のインタフェースを実現することができる.  1つのクラスは1つのスーパークラスしか継承できません(abstract)
例:
定義:
public abstract class CollegeStudent {
    abstract void canDO() ;
}

実装:
public class CollegeStudentInMathmatics extends CollegeStudent {
    @Override
    void canDO() {

    }
}

 
refer:
https://blog.csdn.net/it_zjyang/article/details/51417001