Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

말하기/노래하기를 포함 수화까지 가능 한 객체로 만든다고 가정해봅시다.


Code Block


public Class Singer : Extends Voice,SignLanguage {

  public sayText(text) { super.sayText(text);  }

}

...

다중상속이 허용될 경우 누가 실행될지 모르는 모호성을 가지고 있기때문에 다중상속이 제한된 언어도 있습니다.


그래서 이러한 문제를 인터페이스를 통해 추상화문제를 풀수 있게해줍니다.

Code Block
interface Voice{
  sayText(text) { //기능정의됨 }
  playText(text) { //기능정의됨 } ;  
}

interface SignLanguage{
  sayText(text) { ////기능정의됨 }; 
}

public Class Singer : implements  Voice,SignLanguage {

  public sayText(text) { //새롭게 구현...  }

}

...

그 인터페이스를 이용하는 클래스에서 상속관계와 상관없이 약속된 기능을 제공한다란 의미로 추상화가 됩니다.



Code Block
public class Voice{
  sayText(text) { //기능정의됨 }
  playText(text) { //기능정의됨 } ;  
}

public class SignLanguage{
  sayText(text) { ////기능정의됨 }; 
}

public Class Talker  {

  public Voice voice;
  public SignLanguage voice;

}

다중으로 상속이 여려울경우 다양한 객체자체를 다중으로 가질수 있는 전략을 선택할수도 있습니다.




마치며

...

OOP를 지원하는 언어에서 OOP의 대표적인 4대(캡슐화,상속,추상화,다형성) 특성에 대한 이용방법및 제약이 약간다를수 있습니다.

...