파이썬 프로그래밍의 기초: 클래스 3편
2018. 1. 31. 21:04ㆍPython-이론/python
클래스의 상속
상속이란 말그대로 부모나 윗사람들 것을 그대로 물려받는 것을 의미한다. 이런 것을 파이썬내에서 사용할 수 있다.
class sum: def __init__(self): self.result=0 def lastsum(self,first, last): self.result = first + last return self.result sum1 = sum() print(sum1.lastsum(2,4)) class powerSum(sum()): pass
이렇게 상속했다면 powerSum은 sum의 모든 기능을 사용할 수 있어야 할 것이다.
sum1 = powerSum() print(sum1.lastsum(4,2)) 6
powerSum을 이용하여 객체를 만들어도 부모 객체의 sum의 기능을 그대로 사용할 수 있다. 이번에는 powerSum의 기능을 추가해보겠다.
class sum: def __init__(self): self.result=0 def lastsum(self,first, last): self.result = first + last return self.result class powerSum(sum): def __init__(self): self.result =5 def superSum(self, first,last): self.result = first*2 + last * 2 return self.result sum1 = powerSum() print(sum1.superSum(2,4))
보통은 기존에 있는 클래스의 기능을 다가지면서 기능을 확장하고 싶을때 주로 사용된다.
메서드 오버라이딩
부모 클래스 안에 있는 메소드를 자식클래스에서 더 확장하여 사용하고 싶다면 오버라이딩을 사용하면 된다. 사용 방법은 자식 클래스에 메소드의 이름 인수들을 동일하게 해서 정의해주면 된다. 호출할때 부모 클래스의 메소드가아닌 자식클래스의 메소드가 호출된다.
class sum: def __init__(self): self.result=0 def lastsum(self,first, last): self.result = first + last return self.result class powerSum(sum): def __init__(self): self.result =5 def superSum(self, first,last): self.result = first*2 + last * 2 return self.result sum1 = powerSum() print(sum1.superSum(2,4)) None
위의 예제와 같이 결과값이 다르게 나오는 것을 알 수 있다.
'Python-이론 > python' 카테고리의 다른 글
파이썬 프로그래밍의 기초: 패키지 (0) | 2018.02.01 |
---|---|
파이썬 프로그래밍의 기초: 모듈 (0) | 2018.02.01 |
파이썬 프로그래밍의 기초: 클래스 2편 (0) | 2018.01.31 |
파이썬 프로그래밍의 기초: 클래스 1편 (0) | 2018.01.31 |
파이썬 프로그래밍의 기초: 파일 읽고 쓰기 (0) | 2018.01.30 |