본문 바로가기

다형성3

다형성(polymorphism) - 매개변수의 다형성 다형성의 장점 ① 다형적 매개변수 ② 하나의 배열로 여러 종류 객체 다루기 참조변수의 다형적 특성은 메소드의 매개변수에도 적용된다. 만약 우리가 전자 제품을 사러 가는 것을 코드를 통해 표현하면 다음과 같다. //1.제품 class Product{ int price; //제품의 가격 int bonusPoint; //제품을 구매하면 주어지는 마일리지 } //2.제품의 구성 class Tv extends Product {} class Computer extends Product {} class Audio extends Product {} //3.고객(물건을 사려는 사람) //3.구매자(구매자의 정보) class Buyer{ int money = 1000; // 소유하고 있는 돈 int bonusPoint =.. 2021. 4. 3.
다형성(polymorphism) - 참조변수와 인스턴스의 연결 부모 타입의 참조변수와 자식 타입의 참조변수의 차이는 사용할 수 있는 멤버의 개수다. 만약 부모 클래스에 선언된 멤버변수와 동일한 이름의 인스턴스변수가 자식 클래스에도 정의되어 있을 때, 부모 타입의 참조변수로 자식 인스턴스를 참조하는 경우와 자식 타입의 참조변수로 부모 타입의 인스턴스를 참조하는 경우에는 서로 다른 결과를 얻는다. 메소드의 경우 부모 클래스의 메소드를 자식 클래스에서 오버라이딩한 경우에도 참조변수의 타입에 관계없이 항상 실제 인스턴스의 메소드(오버라이딩한 메소드)가 호출되지만, 멤버변수의 경우 참조변수의 타입에 따라 달라진다. static메소드는 static변수처럼 참조변수의 타입에 영향을 받는다. 참조변수의 타입에 영향을 받지 않는 메소드는 인스턴스 메소드뿐이다. 그래서 static메.. 2021. 4. 1.
다형성(polymorphism) 1. 다형성 다형성이란 여러 가지 형태를 가질 수 있는 능력을 의미하며, 좀 더 구제적이지만 간단히 말하면 부모 클래스의 참조변수로 자식 클래스의 인스턴스를 참조하는 것이다. 간단히 예를 들면 서로 다른 두개의 클래스가 있다고 하면 쉽게 알 수 있다. 예제1) public class Tv { boolean power; //전원 상태 int channel; //채널 void power(){ } void channelUp(){ }//채널 up void channelDown(){ }//채널 down } class CaptionTv extends Tv{ String text; //캡션을 보여주기 위한 문자열 void caption() { } } 이때, Tv와 CaptionTv는 서로 상속관계에 있으며, 이 두 .. 2021. 3. 30.