Inheritance

Dmitry Klokov·2021년 1월 11일
0

JAVA

목록 보기
3/13
post-thumbnail

Class

Usage

childClass extends parentClass

public class Dog extends Animal { ... }

IS-A

Dog class는 Anima class를 상속받았다. 즉, Dog는 Animal의 하위 개념이라고 할 수 있겠다. 이런 경우 Dog 는 Animal에 포함되기 때문에 개는 동물이다라고 표현 할 수 있다.

자바는 이러한 관계를 IS-A 관계라고 표현한다. 즉 "Dog is a Aniaml"과 같이 말할 수 있는 관계를 IS-A관계라고 한다.

이렇게 IS-A관계(상속관계)에 있을 때 자식 객체는 부모 클래스의 자료형인 것처럼 사용할 수 있다.

즉 다음과 같은 코딩이 가능하다.
Animal dog = new Dog();

하지만 이 반대의 경우, 즉 부모 클래스로 만들어진 객체를 자식 클래스의 자료형으로는 사용할 수 없다.

다음의 코드는 컴파일 오류가 발생한다.
Dog dog = new Animal();

Method Overriding

부모클래스의 메소드를 자식클래스가 동일한 형태로 또 다시 구현하는 행위를 메소드 오버라이딩(Method Overriding)이라고 한다.

Method Overloading

다른 매개변수를 가진 같은 이름의 함수를 만드는 것을 메소드 오버로딩(Method Overloading)이라 한다.

Multiple Inheritance

자바는 기본적으로 다중 상속을 지원하지 않는다. 하지만 방법이 있다.
참고 : Java and Multiple Inheritance | GeeksforGeeks

profile
Power Weekend

0개의 댓글