Java入門 (17) - インターフェース

Java入門 (17) - インターフェース

インターフェース

      - インターフェイスは「参照データ型」でもあり、コンパイル後のクラス バイトコード ファイルでもあります
      - インターフェイスは完全に抽象です (抽象クラスは半抽象です)
      * 定義:
           [修飾子リスト] インターフェイス インターフェイス名 {            }       - 多重継承をサポートします       - インターフェイス 定数と抽象メソッドの 2 つの部分のみが含まれます       - すべての要素はパブリックに変更されます       - 抽象メソッドを定義する場合、パブリック抽象修飾子は省略できます       - 定数の public static 最後は省略できます       - クラスとクラスは継承継承、クラスと呼ばれます実装間の関係は実装と呼ばれます。実装と実装は同時に継承できますが、最初に継承してから実装する必要があります。       非抽象クラスがインターフェイス カードを実装する場合、インターフェイスのすべての抽象メソッドは次のとおりです。実装済み [対象]       - インターフェースにコンストラクタメソッドを持てない       - メイクアップ クラス間で単一継承しかサポートできない欠点を解消 プラグインに相当 必要なときに呼び出せるのでスケーラビリティが向上       - ポリモーフィズムに使える。










; です。があります ; のような

       - is a: a を満たすものはすべて「継承関係」を表す
       - has a: a を満たすものはすべて「関連付け関係」を表す
       - like a: a のように満たすものはすべて「実装関係」を表す

サンプルコード


interface Intf01{
	public static final String A="动物:";
	String B="有翅膀的";//public static final省略
	
	//public Intf() {}
	//接口不能具有构造函数
	
	public abstract void AI();
}
interface Intf02{
	public abstract void AI(String i);
}
abstract class AC implements Intf01,Intf02{ //多继承
	public AC() {//抽象类可以接构造方法
		System.out.println(A);
	}
}
class Test01 extends AC implements Intf01 {//Intf02被间接继承
	public Test01(){
        System.out.print("这是一只");
	}
	public void AI() {
		System.out.print(B);
	}
	public void AI(String i) {
		System.out.println(i);
	}
}

public class Interface {
	public static void main(String[] args) {
		Test01 t=new Test01();
		t.AI();
		t.AI("老鹰");
		
		Intf01 tt=new Test01();//类型转换
		Intf02 ttt=(Intf02)tt;
		//接口与接口之间可以进行强制类型转换,但是可能会出错
		ttt.AI("鸡");
	}

}

おすすめ

転載: blog.csdn.net/qq_61562251/article/details/135047150