본문 바로가기
728x90

JAVA 메서드 오버라이딩2

[실전 자바-기본편] 다형성 활용 다형성 활용 Animal이 부모, Dog, Cat, Cow 가 자식인 상황 soundAnimal 매개변수가 부모인 Animal 타입이지만 다형적 참조로 가능! 코드를 분석해보자 soundAnimal(dog) 호출 시 soundAnimal(Animal animal) 에 Dog 인스턴스가 전달 Animal animal = dog로 이해하면 된다. 부모는 자식을 담을 수 있다. 메서드 안에서 animal.sound() 메서드를 호출한다. animal 변수 타입은 Animal이므로 Dog 인스턴스에 있는 Animal 클래스 부분을 찾아서 sound() 메서드를 실행한다. 그런데 하위 클래스인 Dog에서 sound() 메서드를 오버라이딩 했다. 따라서 메서드가 우선권을 가진다. Dog class의 sound() .. 2024. 2. 24.
[실전 자바-기본편] 다형성 객체지향 프로그래밍의 대표적인 특징은 캡슐화, 상속, 다형성이 있다. 그 중 다형성은 객체지향 프로그래밍의 꽃이라 불린다. 앞서 학습한 캡슐화, 상속은 직관적으로 이해하기 쉽다. 반면 다형성은 제대로 이해하기 어렵고, 잘 활용하기는 더 어렵다. 다형성(Polymorphism) 다양한 형태, 여러 형태 프로그래밍에서 다형성은 한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 뜻한다. 다형성 이해를 위한 핵심 이론 다형적 참조 메서드 오버라이딩 다형적 참조 부모 타입의 변수가 자식 인스턴스를 참조한다.(할당으로 이해하기) = 부모는 자식을 담을 수 있다. 부모는 마음이 넓다. 반대로 자식 타입은 부모 타입을 담을 수 없다. Parent poly = new Child(); 캐스팅과 다름 ! Child 인스.. 2024. 2. 21.
728x90