다중상속 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
94번째 줄: 94번째 줄:
  
 
많은 프로그래밍 언어들이 다이아몬드 문제에 대한 해결책을 제시하고 있는데 파이썬에서는 메서드 탐색 순서를 따른다. 파이썬은 다중 상속을 할 때 상속 클래스 목록 중 왼쪽에서 오른쪽 순서로 메서드를 찾는다. 그러므로 같은 메서드가 있다면 왼쪽에 있는 클래스 내의 메서드를 우선으로 한다. 만약 상속관계가 복잡하게 얽혀있다면 MRO 메서도를 사용해 살펴보는것이 편리하다.<ref name="자료5"> 코딩도장, 〈[https://dojang.io/mod/page/view.php?id=2388 다중 상속 사용하기]〉, 《코딩도장》</ref>
 
많은 프로그래밍 언어들이 다이아몬드 문제에 대한 해결책을 제시하고 있는데 파이썬에서는 메서드 탐색 순서를 따른다. 파이썬은 다중 상속을 할 때 상속 클래스 목록 중 왼쪽에서 오른쪽 순서로 메서드를 찾는다. 그러므로 같은 메서드가 있다면 왼쪽에 있는 클래스 내의 메서드를 우선으로 한다. 만약 상속관계가 복잡하게 얽혀있다면 MRO 메서도를 사용해 살펴보는것이 편리하다.<ref name="자료5"> 코딩도장, 〈[https://dojang.io/mod/page/view.php?id=2388 다중 상속 사용하기]〉, 《코딩도장》</ref>
 
===C#===
 
C#에서 클래스는 여러 클래스를 동시에 상속하는 다중상속이 불가능하다.<ref name="자료6"> 셩님, 〈[https://debuglog.tistory.com/134 인터페이스 다중 상속]〉, 《개인블로그》, 2018-06-18</ref> 하지만 자바와 같이 인터페이스를 활용한 다중 상속은 가능하다.
 
 
interface A{
 
    void sampleA();
 
}
 
 
interface B{
 
    void sampleB();
 
}
 
 
class C : A, B
 
{
 
    void sampleA(){
 
          코드
 
    }
 
    void sampleB(){
 
          코드
 
    }
 
}
 
 
위와 같이 인터페이스를 사용하면 다중 상속이 가능하다. 이 때 클래스 하나와 여러 인터페이스를 상속 받는 것 또한 가능하다. 하지만 클래스가 여러개 들어가는 것은 사용할 수 없다.
 
 
class A{
 
    void sampleA();
 
}
 
 
interface B{
 
    void sampleB();
 
}
 
 
class C : A, B
 
{
 
    void sampleA(){
 
          코드
 
    }
 
    void sampleB(){
 
          코드
 
    }
 
}
 
  
 
===문제점===
 
===문제점===
152번째 줄: 111번째 줄:
 
* 김형수, 〈[https://m.blog.naver.com/PostView.nhn?blogId=there924&logNo=220857891926&proxyReferer=https%3A%2F%2Fwww.google.com%2F 객체지향(6) - 다중상속]〉, 《개인블로그》, 2016-11-10
 
* 김형수, 〈[https://m.blog.naver.com/PostView.nhn?blogId=there924&logNo=220857891926&proxyReferer=https%3A%2F%2Fwww.google.com%2F 객체지향(6) - 다중상속]〉, 《개인블로그》, 2016-11-10
 
* 코딩도장, 〈[https://dojang.io/mod/page/view.php?id=2388 다중 상속 사용하기]〉, 《코딩도장》
 
* 코딩도장, 〈[https://dojang.io/mod/page/view.php?id=2388 다중 상속 사용하기]〉, 《코딩도장》
* 셩님, 〈[https://debuglog.tistory.com/134 인터페이스 다중 상속]〉, 《개인블로그》, 2018-06-18
 
  
 
== 같이 보기 ==
 
== 같이 보기 ==
162번째 줄: 120번째 줄:
 
* [[자바]]
 
* [[자바]]
 
* [[C++]]
 
* [[C++]]
* [[파이썬]]
 
* [[C#]]
 
 
* [[인터페이스]]
 
* [[인터페이스]]
  
 
{{프로그래밍|검토 필요}}
 
{{프로그래밍|검토 필요}}

위키원에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 위키원:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)