반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

java.Interface 본문

[IT]/java

java.Interface

givemebro 2021. 3. 4. 15:46
반응형

interface


약속 or 계약
구현한 측과 사용하는 측과의 약속 -> 표준화
> interface는 다중 상속의 장점을 채택
> 다중 상속의 장점은 다양한 계층 구조 형성을 통한 다형성 적용에 있음
> 즉 interface는 다양한 계층 구조 형성을 가능하게 함
> 단, 일반 상속에서 지원하는 멤버를 물려 줄수는 없음

 

>interface끼리는 상속이 가능(abstract method 상속)

 

 

>일반적으로 인터페이스는 static final 상수와 abstract method를 정의함

public interface Flyer{
	String ID="JAVA"; // public static final로 자동 인식
    public void fly(); // abstract method로 자동 인식
}

 


package step5;

interface Flyer {
	String ID="javaking";
	public void fly();// abstract method 인식
}
class Animal{
	
}
class Bird extends Animal implements Flyer {

	@Override
	public void fly() {
		// TODO Auto-generated method stub
		System.out.println("새가 날다");
	}

}

class Airplane implements Flyer {

	@Override
	public void fly() {
		// TODO Auto-generated method stub
		System.out.println("비행기가 날다");
	}
}
interface Fighter{
	public void fight();
}
// interface는 다양한 계층구조 형성이 가능
class SuperMan extends Animal implements Flyer, Fighter{

	@Override
	public void fight() {
		// TODO Auto-generated method stub
		System.out.println("수퍼맨이 악당과 싸우다");
	}

	@Override
	public void fly() {
		// TODO Auto-generated method stub
		System.out.println("수퍼맨이 날다");
	}
	
}
public class TestInterface1 {
	public static void main(String[] args) {
		Flyer f1 = new Bird();
		Flyer f2 = new Airplane();
		f1.fly();
		f2.fly();
	}
}

 


package step8;

// interface끼리는 상속이 가능
interface A {
	public void a();
}

interface B extends A {// A 인터페이스의 abstract method를 상속
	public void b();
}

class TestImpl implements B {// B interface를 implements하는 class a(), b() abstract method를 모두 구현해야함

	@Override
	public void a() {
		// TODO Auto-generated method stub

	}

	@Override
	public void b() {
		// TODO Auto-generated method stub

	}

}

public class TestInterface4 {

}
반응형

'[IT] > java' 카테고리의 다른 글

java.Collection  (0) 2021.03.05
java.Interface.default/static method  (0) 2021.03.05
java.class.layout  (0) 2021.03.05
java.Prepare.Interview  (0) 2021.03.05
java.Design pattern.template  (0) 2021.03.04
java.Design pattern  (0) 2021.03.04
java.abstract(추상화)  (0) 2021.03.04
java.final  (0) 2021.03.04
Comments