객체 지향 프로그래밍에서 상속이란 존재하는 클래스로부터 긴기능을 확장하는 것이라고 할 수 있다. 추상적인 부모 클래스로부터 자식 클래스를 구체화한다.
상속을 이용하면 자식 클래스를 작성할 때 추가할 부분만 작성하면 되므로 중복 코드를 줄이고 작성 시간이 단축된다.
다음과 같은 구조를 가진다.
다음 예시를 보자.
자식 클래스는 부모 클래스의 모든 메서드와 필드를 상속받는다. 이 때, 자식 클래스에서 부모 클래스의 메서드를 덮어쓰기하여 새로 작성할 수 있다. 메서드의 이름과 매개 변수, 리턴타입이 동일해야 한다.
다형성은 하나의 식별자로 다양한 타입의 클래스를 처리하는 것이라고 할 수 있다. 오버라이딩도 다형성에 포함된다.
예를 들어, 함수 len()은 객체의 타입에 상관 없이 동작한다.
파이썬에서, 모든 클래스의 최상위로는 object 클래스가 있다.
object 클래스는 많은 메서들을 가지고 있고, 대표적인 메서드들은 다음과 같다.