본문 바로가기

학위공부/독학사 요점정리

[독학사/컴공/객체지향프로그래밍]9.인터페이스 상속과 다형성

반응형

5.2.인터페이스 상속과 다중 상속

5.2.1.인터페이스 선언(in JAVA)

인터페이스는 자바 프로그래밍 언어에서 클래스들이 구현해야 하는 동작을 지정하는데 사용되는 추상형인터페이스는 노출된 행동들의 집합을 규정하므로 모든 메소드들은 암묵적으로 public이다.

 

 

public interface Interface1 extends Interface2;

public interface Predator{

 boolean chasePrey(Prey p);

 void eatPrey(Prey p);

}

 

 

-인터페이스 내 모든 메소드는 public abstract로 선언됨.

-인터페이스 내 모든 변수는 public static final로 선언됨

 

 

5.2.2.인터페이스 상속(in JAVA)

클래스에서의 인터페이스 구현의 예는 다음과 같다.

public class Lion implements Predator{

 @Override

 public boolean chasePrey(prey p){

 }

 @Override

 public void eatPrey(Prey p){

 }

}

 

 

인터페이스들은 아래와 같은 동일 공식을 사용하여 기타 여러 인터페이스들을 확장(extend)할 수 있다.

public interface VenomousPredator extends Predator, Venomous{

}

 

 

5.2.3.인터페이스 다중 상속(in JAVA)

인터페이스는 다중 상속이 가능하다. 1개의 클래스에서 2개이상의 인터페이스를 상속받을 수 있다.

 

 

:

interface coffee{

 public void coffeE();

}

 

 

interface cookie{

 public void cookie();

}

 

 

class cafeorder implements coffee, cookie{

...

}

 

 

5.2.4.클래스 다중 상속(in C++)

C++에선 다중상속이 가능하다.(JAVA에선 불가능)

-다중 상속을 하려면 클래스 선언시 클래스명부모클래스1, 부모클래스2 ... 식으로 나열하면 된다.

-다중 상속시 여러 부모에서 같은 이름의 멤버변수를 가진 경우 '부모클래스명::멤버변수명'식으로 어느 부모 클래스의 것인지 명시해 줘야 한다.

 

 

5.3.다형성

5.3.1.가상함수 선언(in C++)

http://blog.eairship.kr/175

 

 

5.3.2.메소드의 동적바인딩

바인딩메서드를 호출하는 부분에서 메서드가 위치한 메모리 번지를 연결시켜 주는 것

정적바인딩컴파일에서 실행파일을 만드는 단계에서 호출할 메서드로 점프할 번지가 결정되어 바인딩 되는 것

동적바인딩실행파일을 만드는 과정에서 호출할 메서드로 점프할 번지를 결정하지 않고 실행할 때 즉석으로 결정하는 것

메서드의 동적바인딩의 예: C++의 가상함수오버라이딩 등

 

 

5.3.3.여러 하위 클래스의 객체들을 동일하게 사용하기

??

반응형