예 ,Python은 다형성을 지원합니다.
다형성이라는 단어는 많은 형태를 갖는다는 의미입니다.
다형성 클래스 또는 하위 클래스에 걸쳐 공통적으로 명명된 메서드가 있을 때 활용되는 Python 클래스 정의의 중요한 기능입니다.
다형성은 상속을 통해 수행할 수 있으며 하위 클래스는 기본 클래스 메서드를 사용하거나 재정의합니다.
다형성에는 두 가지 유형이 있습니다.
- 과부하
- 재정의
과부하 :한 클래스의 두 개 이상의 메소드가 메소드 이름은 같지만 매개변수가 다른 경우 오버로딩이 발생합니다.
재정의 :재정의는 동일한 메소드 이름과 매개변수(즉, 메소드 서명)를 갖는 두 개의 메소드를 갖는 것을 의미합니다. 메소드 중 하나는 상위 클래스에 있고 다른 하나는 하위 클래스에 있습니다.
예
class Fish(): def swim(self): print("The Fish is swimming.") def swim_backwards(self): print("The Fish can swim backwards, but can sink backwards.") def skeleton(self): print("The fish's skeleton is made of cartilage.") class Clownfish(): def swim(self): print("The clownfish is swimming.") def swim_backwards(self): print("The clownfish can swim backwards.") def skeleton(self): print("The clownfish's skeleton is made of bone.") a = Fish() a.skeleton() b = Clownfish() b.skeleton()
python polymorphism.py 명령으로 프로그램을 실행하면 예상되는 출력이 나옵니다.
출력
The fish's skeleton is made of cartilage. The clownfish's skeleton is made of bone.