티스토리 뷰

반응형

1. 상속

기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것

 

1. java

기본적으로 단일 상속만 지원해준다. 그래서 둘 이상을 상속받을 수가 없다.  그러한 이유는 다중 상속을 했을 때 생기는 문제점을 안고 있어서 이러한 것을 없애고자 단일상속만을 허용한다고 한다. (클래스 간의 관계가 명확해진다는 장점이 있다.)

 

2.  Python

다중상속을 지원해준다. 순서는 오른쪽에서 왼쪽 방향으로 상속이 받아진다. 만일 오른쪽과 왼쪽이 같은 메서드가 있다고 했을 때 왼쪽의 메소드로 오버라이팅이 된다.

 

 

자바의 단일 상속은 다들 아시니 python 다중상속에 대해서 예시를 들어 설명해보겠습니다.

class BaseMixins(object):
    def __repr__(self):
        return f'x는 1이고 y는 2입니다'

    def point(self):
        return 1, 2

    def base(self):
        return '기본'


class ComplexMixins(object):
    def __repr__(self):
        return f'3D POINT 1, 2, 3'

    def point(self):
        return 1, 2, 3

    def complex(self):
        return '심화'


class ModelOne(ComplexMixins, BaseMixins):
    pass


class ModelTwo(BaseMixins, ComplexMixins):
    pass


if __name__ == '__main__':
    model = ModelOne()
    print(model)
    print(model.point())
    print(model.base())
    print(model.complex())

    model = ModelTwo()
    print(model)
    print(model.point())
    print(model.base())
    print(model.complex())
3D POINT 1, 2, 3
(1, 2, 3)
기본
심화
x는 1이고 y는 2입니다
(1, 2)
기본
심화

 

반응형

'knowledge' 카테고리의 다른 글

[JAVA] Adapter 패턴에 대하여  (0) 2021.11.16
[Pattern][Java][Python] Singleton 생성 패턴에 대하여  (0) 2021.11.04
[Java] Prototype 생성 패턴  (0) 2021.11.02
[git] stash 활용  (0) 2021.10.28
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함