JAVA:インタフェースクラス(コード練習)

22375 ワード

こんにちは.😊 今日はJAVA:インタフェースクラスをご紹介しましょう.

入る前に...


前回のプレゼンテーションJAVA:Downcasting、抽象クラス、インタフェースクラスでは、インタフェースクラスを最後にプレゼンテーションした後、インタフェースクラスコードの最後のプレゼンテーションを完了した.
インタフェースクラスがJavaに基づいて非常に重要である以上、今日はさらに位置づけます.

インタフェースクラス


インタフェースフィーチャージェネレータを所有できません.new演算子ではインスタンス化できません.関数はabstractキーワードを必ずしも使用する必要はありません.変数はすべて定数です.静的関数とdefault関数を使用できます

インタフェース練習例1


5つのjavaファイルでコード練習をしましょう.😊
Exam_Inter_1_Class.java
package a.b.c.ch2.aaaa;

public class Exam_Inter_1_Class implements Exam_Inter_1, Exam_Inter_3{

	@Override
	public /*abstract 키워드 생략*/ void aM(){
		System.out.println("Exam_Inter_1 인터페이스에서 오버라이딩 해서 aM() {}  블럭을 만들고 재정의 하는 함수이다.");				
	}

	
	@Override
	public /* abstract */ void bM(){
		System.out.println("Exam_Inter_1 인터페이스에서 오버라이딩 해서 bM() {}  블럭을 만들고 재정의 하는 함수이다.");		
	}

	@Override
	public /* abstract */ void cM() {
		System.out.println("Exam_Inter_1 인터페이스에서 오버라이딩 해서 cM() {}  블럭을 만들고 재정의 하는 함수이다.");
	}

	@Override
	public void dM(){
		System.out.println("Exam_Inter_2 인터페이스에 있는 추상함수이다.");
		System.out.println("Exam_Inter_1 인터페이스에 extends 키워드로 인터페이스 상속을 해주었다.");
		System.out.println("Exam_Inter_1 인터페이스에 dM() 함수를 오버라이딩 해주었다.");
		System.out.println("Exam_Inter_1_Class 클래스에서 오버라이딩해서 재정의 했다.");
	}
	
	@Override
	public void eM(){
		System.out.println("Exam_Inter_3 인터페이스에 있는 추상함수이다.");
	}
}
Exam_Inter_1.java
package a.b.c.ch2.aaaa;

public interface Exam_Inter_1 extends Exam_Inter_2{

	public /* abstract 키워드 생략 */ void aM();
	public abstract void bM();
	public abstract void cM();
}
Exam_Inter_2.java
package a.b.c.ch2.aaaa;

public interface Exam_Inter_2 {

	public void dM();
}
Exam_Inter_3.java
package a.b.c.ch2.aaaa;

public interface Exam_Inter_3 {

	public void eM();
}
Exam_Inter_1_Test.java
package a.b.c.ch2;

import a.b.c.ch2.aaaa.Exam_Inter_1;
import a.b.c.ch2.aaaa.Exam_Inter_3;
import a.b.c.ch2.aaaa.Exam_Inter_1_Class;

public class Exam_Inter_1_Test {

	public static void main(String args[]) {


		Exam_Inter_1 ei1 = new Exam_Inter_1_Class();
		System.out.println("ei1 참조변수 주소값 >>> : " + ei1);

		Exam_Inter_3 ei3=new Exam_Inter_1_Class();

		ei1.aM();
		ei1.bM();
		ei1.cM();
		ei1.dM();
		ei3.eM();
	}
}

インタフェース練習例1に示す構成と結果


main関数を含まないクラス

さぎょうげんり

出力結果
ei1 참조변수 주소값 >>> : a.b.c.ch2.aaaa.Exam_Inter_1_Class@15db9742
Exam_Inter_1 인터페이스에서 오버라이딩 해서 aM() {}  블럭을 만들고 재정의 하는 함수이다.
Exam_Inter_1 인터페이스에서 오버라이딩 해서 bM() {}  블럭을 만들고 재정의 하는 함수이다.
Exam_Inter_1 인터페이스에서 오버라이딩 해서 cM() {}  블럭을 만들고 재정의 하는 함수이다.
Exam_Inter_2 인터페이스에 있는 추상함수이다.
Exam_Inter_1 인터페이스에 extends 키워드로 인터페이스 상속을 해주었다.
Exam_Inter_1 인터페이스에 dM() 함수를 오버라이딩 해주었다.
Exam_Inter_1_Class 클래스에서 오버라이딩해서 재정의 했다.
Exam_Inter_3 인터페이스에 있는 추상함수이다.

インタフェース練習例2


インタフェースクラスから各国の挨拶文を継承して出力する例を見てみましょう.
MessageInterface.java
package a.b.c.ch2;

public interface MessageInterface{
	public void sayHello(String name);
} 
MessageKorImpl.java
package a.b.c.ch2;

public class MessageKorImpl implements MessageInterface{
	@Override
	public void sayHello(String name){
		System.out.println("안녕하세요, "+name+"!!");
	}
} 
MessageEngImpl.java
package a.b.c.ch2;

public class MessageEngImpl implements MessageInterface{
	@Override
	public void sayHello(String name){
		System.out.println("Hello, "+name+"!!");	
	}
}
MessageTest.java
package a.b.c.ch2;

public class MessageTest{
	public static void main(String[] args){
	MessageInterface eme=new MessageEngImpl();
	eme.sayHello("velog");

	MessageInterface emk=new MessageKorImpl();
	emk.sayHello("벨로그");
	}
}

インタフェース練習例2に示す構成と結果


main関数を含まないクラス

さぎょうげんり

出力結果
Hello, velog!!
안녕하세요, 벨로그!!
以上がJAVA:Interface Class(コード練習)の位置づけです.😀