반응형
- 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 |
댓글