Javaベースの強化-抽象クラスとインタフェース

3034 ワード

抽象クラスとインタフェースの違い
抽象クラス
  • 抽象クラスは継承のみでインスタンス化できません.
  • 抽象メソッドは、abstractキーワードを使用して修飾する必要があります.宣言のみで、具体的な実装はありません.
  • 抽象メソッドはpublicまたはprotectedでなければなりません(privateの場合、クラスに継承されず、サブクラスはメソッドを実装できません).デフォルトではpublicがデフォルトです.
  • 抽象メソッドを含むクラスを抽象クラスと呼び、抽象クラスは同様にメンバー変数と通常のメンバーメソッドを持つことができる.
  • の役割:抽象クラスはすべてのサブクラスに共通のテンプレートを提供し、サブクラスはこの共通のテンプレート上で拡張することができる.抽象クラスは有用な再構築ツールです.
  • //      A
    public abstract class A{
        private String MSG;//    
        
        //      
        public abstract void print();
        
        //    
        public void output(){
            System.out.println("hello world");
        }
    }
    

    インタフェース
  • インタフェースはインスタンス化できず、構造方法もありません.
  • インタフェース内のすべての方法は具体的に実現できない.すなわち、インタフェース内の方法は抽象的な方法でなければならない.
  • インタフェースの変数は、public static final変数として暗黙的に指定されます(public static final変数のみでprivate修飾でコンパイルエラーが報告されます)
  • .
  • 作用:多重実現、クラスの単一継承欠陥を解決する;プログラム開発が便利(可読性が強く、修正が便利)
  • //     A
    interface A {
        //     
    	public static final String MSG = "Hello";
    	//     
    	public abstract void print();
    }