Javaベースの強化-抽象クラスとインタフェース
3034 ワード
抽象クラスとインタフェースの違い
抽象クラス抽象クラスは継承のみでインスタンス化できません. 抽象メソッドは、abstractキーワードを使用して修飾する必要があります.宣言のみで、具体的な実装はありません. 抽象メソッドはpublicまたはprotectedでなければなりません(privateの場合、クラスに継承されず、サブクラスはメソッドを実装できません).デフォルトではpublicがデフォルトです. 抽象メソッドを含むクラスを抽象クラスと呼び、抽象クラスは同様にメンバー変数と通常のメンバーメソッドを持つことができる. の役割:抽象クラスはすべてのサブクラスに共通のテンプレートを提供し、サブクラスはこの共通のテンプレート上で拡張することができる.抽象クラスは有用な再構築ツールです.
インタフェースインタフェースはインスタンス化できず、構造方法もありません. インタフェース内のすべての方法は具体的に実現できない.すなわち、インタフェース内の方法は抽象的な方法でなければならない. インタフェースの変数は、public static final変数として暗黙的に指定されます(public static final変数のみでprivate修飾でコンパイルエラーが報告されます) .作用:多重実現、クラスの単一継承欠陥を解決する;プログラム開発が便利(可読性が強く、修正が便利)
抽象クラス
// A
public abstract class A{
private String MSG;//
//
public abstract void print();
//
public void output(){
System.out.println("hello world");
}
}
インタフェース
// A
interface A {
//
public static final String MSG = "Hello";
//
public abstract void print();
}