[PYTHON] 바인딩과 다형성

2023. 7. 5. 09:48·PYTHON
#바인딩 - 실제 호출될 함수를 연결하는 것
#정적바인딩 - 호출할 함수를 변수의 타입으로 결정하는 것
#동적바인딩 - 호출할 함수를 인스턴스 공간의 타입으로 결정하는 것


# 다형성
#  - 다양한 형태나 성질
#  - 하나의 객체를 여러 개의 클래스로 표현하는 것을 말한다
#  - 상속이 기본
#  - 클래스를 기능별로 분리하여 통합적인 처리를 하기 위해서 사용된다
#  - 업캐스팅을 바탕으로 이루어진다
#   - 부모의 참조형변수안에 자식클래스의 인스턴스 공간의 정보가 저장되는 형태
  

class Animal:
    
    def __init__(self,name) -> None:
        self.name = name

    def bark(self):
        print("????????")

    def disp(self):
        print("이름 : {}".format(self.name))


class Cat(Animal):
    def __init__(self, name) -> None:
        super().__init__(name)

    def bark(self):
        print("야옹")

    def eat(self):
        print("생선")

class Dog(Animal):
    def __init__(self, name) -> None:
        super().__init__(name)

    def bark(self):
        print("멍멍")

    def eat(self):
        print("뼈다구")


import random

a = None

su = random.randint(0,1)

if su == 0:
    a = Dog("개")
elif su == 1:
    a = Cat("고양이")


a.disp() # - 부모클래스의 고유한기능
a.bark() # - 오버라이드메소드는 자식클래스 우선
a.eat() # - 다른 프로그래밍언어에서는 원래 사용불가
저작자표시 (새창열림)

'PYTHON' 카테고리의 다른 글

[PYTHON] 구글코랩(colaboratory)  (0) 2023.10.12
[PYTHON] 추상클래스  (0) 2023.07.05
[PYTHON] 상속  (0) 2023.07.05
[PYTHON] 클래스(소멸자)  (0) 2023.07.04
[PYTHON] 클래스(Class)  (0) 2023.07.03
'PYTHON' 카테고리의 다른 글
  • [PYTHON] 구글코랩(colaboratory)
  • [PYTHON] 추상클래스
  • [PYTHON] 상속
  • [PYTHON] 클래스(소멸자)
kwh_coding
kwh_coding
성장하는 괴물 성괴 김우형
  • kwh_coding
    코딩 일기
    kwh_coding
  • 전체
    오늘
    어제
    • 분류 전체보기
      • JAVA
      • JavaScript
        • Node
        • React
      • PYTHON
      • GitHub
      • DJANGO
      • ERP Project
      • NAVER CLOUD Web DevOps
      • 자격증
        • SQLD
        • 정보처리기사
        • ADsP
      • 코딩테스트
        • 프로그래머스 Lv0
        • 프로그래머스 Lv1
      • Spring
      • Tools
        • Postman
        • eGov
      • WEB
      • CS
  • 블로그 메뉴

    • 홈
    • GitHub
    • Notion
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    javascript
    RDBMS
    SQLD
    annotation
    코딩테스트
    정보처리기사
    git
    코딩
    node
    프로그래머스
    private network
    brycpt
    spring
    web
    js
    React
    AdSP
    jsp
    github
    코테
    gitbash
    CORS
    해시 암호화
    django
    html
    Postman
    Tomcat
    Python
    Java
    eGov
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
kwh_coding
[PYTHON] 바인딩과 다형성
상단으로

티스토리툴바