상속이란?
- Inheritance allows us to define a class that inherits all the methods and properties from another class
- 다른 클래스에서 모든 메소드와 프로퍼티를 물려받아 사용하는 것
- Parent class = 부모 클래스 = base class
- Child class = 자식 클래스 = derived class
파이썬에서 상속의 특징
- 다중 상속이 가능하다 (cf. 자바: 클래스는 다중 상속이 불가, 여러 객체의 속성을 상속하려면 인터페이스 사용)
- 상속을 사용하는 법: 클래스 선언 시 parameter 추가 ex. class 자식(부모)
class Person:
def __init__(self, fname, lname):
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname, self.lastname)
x = Person("John", "Doe")
x.printname()
class Student(Person):
pass
x = Student("Mike", "Olsen")
x.printname()
- 자식 클래스에 init 함수 추가 시, 부모 클래스의 init 함수를 상속하지 않는다.
- 자식 클래스의 함수가 override
- init 외에도 이름이 같은 함수에 모두 동일하게 적용됨
class Korean(Person):
def __init__(self, fname, lname, lname_origin):
self.firstname = fname
self.lastname = lname
self.origin = lname_origin
def printkoreanname(self):
print(self.origin, self.lastname, self.firstname)
y = Korean("윤", "오", "해주")
y.printname()
y.printkoreanname()
- 타입 체크 활용