GDJ 8/22

Yongha Hwang·2023년 8월 22일
0

Web & JAVA

1.Interface

  • 익명 개체(Anonymous Instance)

    익명 함수와 마찬가지로 이름이 없어 다른곳에서 사용이 불가능하며 한번만 사용 할 수 있다.
    객체화가 불가능한 Interface에 활용한다.

		// 익명 객체 사용
		// 인터페이스를 객체화 하려고 시도하면 아래처럼 나타난다.
		// 아래 내용은 객체화를 시도하니 즉석으로 객체를 제공해 준 것이다.
		// 아래 객체는 def 라는 이름이 있는데 왜 익명객체?
		// 여기서 익명은 객체의 이름이 없다는 것이 아니라 개체를 만드는 클래스의 이름이 없다는 것
		// 클래스가 존재하지 않으니 여러곳에서 사용할 수 없다.
		Defense def = new Defense() {
			
			@Override
			public String block() {				
				return "캐릭터가 방어를 한다.";
			}
			
			@Override
			public String avoid() {				
				return "캐릭터가 회피한다.";
			}
		};
  • 다중상속

    class 와 다르게 interface는 다중상속이 가능하므로 여러번의 객체화가 필요하지 않다.

// Action 만 구현받았지만
// Action 이 상속받은 다른 인터페이스의 추상메더드도 같이 오버라이드 된다.
public class Character implements Action {
	
	// Attack
	@Override
	public String normal() {
		return "일반 공격을 한다.";
	}

	@Override
	public String special() {
		return "특수 공격을 한다.";
	}
	
	// Defense
	@Override
	public String block() {
		return "공격을 막는다.";
	}

	@Override
	public String avoid() {
		return "공격을 회피 한다.";
	}
	
	// Action
	@Override
	public String useItem() {
		return "아이템을 사용 한다.";
	}

	@Override
	public String move() {
		return "이동한다.";
	}

	@Override
	public String pickup() {
		return "아이템을 줍는다.";
	}

}

2. 다형성(Polymorphism)

  • OOP의 주요 특징 중 하나이다.
  • 같은 부모를 상속받은 class는 같은 type으로 들어갈 수 있다.
  • 특정 Interface 를 구현 받은 class 가 해당 Interface 형태로 들어갈 수도 있다.

//StandardModel 을 상속받은 객체들은 이 형태에 들어갈 수 있다.
StandardModel model = null;
model = new Tanker();
model = new Dealer();
model = new Healer();

0개의 댓글

관련 채용 정보