Page History
...
말하기/노래하기를 포함 수화까지 가능 한 객체로 만든다고 가정해봅시다.
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대(캡슐화,상속,추상화,다형성) 특성에 대한 이용방법및 제약이 약간다를수 있습니다.
...