///////
Search

오버라이딩, 다형성

작성 날짜
2022/09/26 07:21
Text
Text 1
작성자
면접에 자주 등장하는 주제: overriding vs. overloading

Method Overriding

상속받은 method내용을 변경하는 것
method name, parameter, return type (선언부 declaration) 모두가 일치해야함
함수 내용만 달리함. 그 외는 변경 불가
접근 지정자를 부모 클래스의 method보다 좁은 범위로 변경할 수 없다
예외 (throws Exception) 는 부모 클래스의 method 수와 같거나 적어야한다
@override method위에 표시하기

Overloading

Overrding과는 관련 x
이름이 같은 method를 매개변수 (parameter)를 다르게 해서
public Pizza() { ... } public Pizza(int slices) {...}
JavaScript
복사

다형성 (Polymorphism)

객체들의 타입이 다르면 똑같은 메시지가 전달되더라도 서로 다른 동작을 함
부모 타입으로 자손 타입 객체를 다루는 것
class TV{ } class SmartTV extends TV{ }
JavaScript
복사
TV television = new TV();
TV television = new SmartTV();
JavaScript
복사
참조변수와 객체의 타입이 불일치가 허용된지만 참조 변수의 field와 method만 사용할 수 있다.
자식 타입의 참조변수로 부모 타입의 객체를 생성 할 수 없다
SmartTV television = new TV(); —→ error
JavaScript
복사

Class Name

2개 이상의 class가 있을때는 접근 지정자를 지정한 class의 이름이 file name이여야함
file name: Override Test
class Point{...} public class OverrideTest{...}
JavaScript
복사