[Java] 다형성(Polymorphism)
·
TIL/Java
다형성(Polymorphism) 하나의 메소드나 클래스가 있을 때 이것들이 다양한 방법으로 동작하는 것을 의미한다. Overloading과 다형성 오버로딩은 가장 이해하기 쉬운 다형성의 예라고 할 수 있다. 아래의 코드를 살펴보자 클래스 O의 메소드 a는 두개의 본체를 가지고 있으며, 동시에 두개의 본체는 하나의 이름인 a를 공유하고 있다. 같은 이름이지만 서로 다른 동작 방법(매개변수)을 가지고 있기 때문에 오버로딩은 당형성의 한 예라고 할 수 있다. 클래스와 다형성 아래 코드는 클래스 B의 데이터 형이 클래스 A이다. 클래스 B는 클래스 A를 상속하고 있으며, 이런 경우에는 클래스 B는 클래스 A를 데이터 형으로 삼을 수 있다. 아래 코드를 살펴보면 19행에 에러가 발생한다. 즉, object.x()..
[Java] 오버라이딩(Overriding)
·
TIL/Java
오버라이딩(Overriding)이란? 재정의를 의미하며, 상속과 밀접한 관계를 가지고 있다. 즉, Java에서는 부모 클래스가 가지고 있는 메소드를 물려 받지만 그것을 그대로 사용하지 않고 자식 클래스의 필요에 따라서 기능을 변경하는 방법이다. 오버라이딩을 하기 위해서는 아래의 조건을 충족시켜야 한다. 1) 메소드의 이름 2) 메소드 매개변수의 숫자와 데이터 타입 그리고 순서 3) 메소드의 리턴 타입 아래 코드를 살펴보면, 24번 째 줄의 코드는 자식 클래스가 부모 클래스의 sum 메소드 기능을 가져온 뒤 기능을 조금 추가하였다. 29번 째 줄의 코드를 살펴보면, 자식 클래스가 부모 클래스의 avg 메소드 기능과 똑같이 사용하겠다는 가정하에 super를 사용하여 기능을 가져왔다. 자식 클래스에서 추기적인..