본문 바로가기
Language/Python

[Python] Method Overriding / Operator Overloading / Polymophism

by 별토끼. 2019. 8. 16.
반응형
  • Computational Thinking : 일상생활의 문제를 컴퓨터의 이론적인 기술을 활용하여 해결할 수 있는 사고력
  • OOP : 일상생활의 문제를 사람의 시각에서 사물을 바라보는 관점으로 프로그램을 설계하고자 하는 개념
Method Overriding
  • 상위 Class의 메소드를 하위 Class에서 재정의하는 것.
  • 자식클래스에서 내부적으로 재정의.
class Car: 
	speed=0 
    def upSpeed(self, value): 
    	self.speed += value

class Sedan(Car):
	seatNum = 0 
    def upSpeed(self, value):  #재정의
    	self.speed += value
        
        if self.speed>150:
        	self.speed = 150
        
class Truck(Car): 
	pass

 

Operator Overloading (중복정의)  
  • 연산자 중복이란?
    • 내장 타입과 형태와 동작이 유사하도록 재정의
    • 연산자 중복을 위해 두 개의 밑줄 문자 앞뒤로 있는 메소드를 미리 정의.
      • __add__(self, other)
      • __sub__(self, other)
      • ....
Polymorphism
  • 다형성(polymorphism) : 다양한 형태
  • inheritance 관계 내 다른 Class들의 instance들이 같은 멤버 함수 호출에 댛 각각 다르게 반응하도록 하는 기능
  • Method Overriding, Operator Overloading 도 다형성을 지원하는 중요한 기술
  • 파이썬에서 다형성의 장점
    • 형 선언이 없다는 점 : 적용이 더 용이함.
class Animal :
	def __init__(self, name):
    	self.name = name
    def speak(self):
    	return '알 수 없음'

class Dog(Animal):
	def speak(self):
    	return '멍멍!'
        
class Cat(Animal):
	def speak(self):
    	return '야옹!'
        
animalList = [Dog('dog1'),
			 Dog('dog2'),
             Cat('cat1')]
             
for a in animalList:
	print (a.name+':'+a.speak())

 

반응형

'Language > Python' 카테고리의 다른 글

[Python] Object Oriented Programming  (0) 2019.08.14
0710 Python 문법, 우분투 사용법  (0) 2019.07.10
[Python] Except / File  (0) 2017.08.17
[Python] Decorator  (0) 2017.08.16
[Python] Extends / super  (0) 2017.08.16

댓글