본문 바로가기

참조변수2

다형성(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.