참조변수와 인스턴스변수의 연결 1. 멤버변수가 중복정의된 경우 , 참조변수의 타입에 따라 연결되는 멤버변수가 달라진다(참조변수타입에 영향받음) 2. 메서드가 중복정의된 경우 , 참조변수의 타입에 관계없이 항상 실제 인스턴스의 타입에 정의된 메서드가 호출된다 . ( 참조변수타입에 영향받지 않음 ) 설명서 앞에서... 참조변수의 타입에 따라 사용할 수 있는 인스턴스의 멤버가 달라진다고 배웠습니다. 그 외에도 한가지 더 차이점이 있는데요. 멤버변수가 중복정의된 경우에는...참조변수의 타입에 따라 연결되는 멤버가 달라진다는 것입니다. 왼쪽과 같이 Parent클래스와 이를 조상으로 하는 Child클래스가 정의되어 있을 때... 멤버변수 x가 중복되어 있습니다. 메서드 역시... 오버라이딩되어 있고요. main메서..
Instanceof 연산자 1. 참조변수가 참조하는 인스턴스의 실제 타입을 체크하는데 사용 2. 이항연산자이며 피연산자는 참조형 변수와 타입, 연산결과는 True , false 3. Instanceof의 연산결과가 True이면 , 해당 타입으로 형변환이 가능하다. 설명서 instanceof연산자는 참조변수가 참조하고 있는 인스턴스의 타입을 체크하는데 사용됩니다. 다형성을 통해 조상타입의 참조변수로 자손타입의 인스턴스를 가리킬 수 있게 되었기 때문에... 참조변수의 타입과 참조변수가 가리키는 인스턴스의 타입이 항상 같지는 않습니다. 그래서... 참조변수가 가리키는 인스턴스의 타입이 어떤 것인지 확인하기 위해서 instanceof연산자를 사용하는 것입니다. 예제를 보시면... FireEngine인스턴스를 생..
설명서 Car타입의 참조변수 car를 선언하고요... 그러면 이렇게 참조변수 car가 만들어집니다.그 다음에... FireEngine인스턴스를 생성하고 이 인스턴스를 참조변수 fe가 가리키게 합니다.그러면 위와같은 그림이 되겠죠... 그리고 FireEngine타입의 참조변수 fe2를 선언했습니다.그 다음에...참조변수 fe에 대해서 메서드 water()를 호출합니다.그러면... FireEngine인스턴스의 water메서드가 호출되어... 화면에 water!!!라는 글자가 출력됩니다.그 다음에... 참조변수 fe의 값을 참조변수 car에 저장합니다. 자손의 타입에서 조상의 타입으로의 형변환... 즉, 리모콘 버튼의 개수를 줄이는 형변환...이기 때문에 형변환을 생략할 수 있었습니다.참조변수가 저장하고 있는..
참조변수의 형 변환 1. 서로 상속관계에 있는 타입간의 형변환만 가능하다. 2. 자손 타입에서 조상타입으로 형변환하는 경우 , 형변환은 생략가능하다 설명서 기본형 변수뿐만 아니라 참조형 변수도 형변환이 가능합니다. 다만 조상자손관계에 있을 때만 형변환이 가능하죠. 자손타입을 조상타입으로 형변환 하는 것을 업캐스팅이라고 하고요. 조상타입을 자손타입으로 형변환 하는 것을 다운캐스팅이라고 합니다. 상속계층도에서 봤을 때 조상으로 가면 올라가는 거니까 up이고 반대는 내려가는 거니까 down입니다. 형변환할 때는 클래스간의 상속계층도를 간단히 그려보면 쉽게 해결됩니다. 형변환 방법은 간단합니다. 기본형 변수의 형변환과 똑같이... 괄호 안에다 변환하고자 하는 타입을 적어주기만 하면 됩니다. 참조형변수의 형변환도..
다형성이란 무엇인가3 1. 조상타입의 참조변수로 자손타입의 인스턴스를 참조할 수 있지만 , 반대로 자손타입의 참조변수로 조상타입의 인스턴스를 참조할 수는 없다. 설명서 이처럼... 자손타입의 인스턴스를 조상타입의 참조변수로 가리키는게 가능하다고 했죠... 그러면 반대로 조상타입의 인스턴스를 자손타입의 참조변수로 가리키는게 가능할까요? 결론부터 말씀드리면... 가능하지 않습니다. 사람들은 리모콘만가지고 Tv를 조작하기 때문에... 이처럼... CaptionTv를 가지고도... Tv리모콘을 사용하면... 아무런 불평없이 잘 사용합니다. caption가능이 있는지도 모르고요... 그러나.. CaptionTv리모콘을 가지고 Caption기능이 없는 Tv를 사용하면... 난리가 납니다. 분명히 리모콘에는 capt..
다형성이란 무엇인가2 1. “하나의 참조변수로 여러 타입의 객체를 참조할 수 있는 것 “ 2. 조상타입의 참조변수로 자손타입의 객체를 다룰 수 있는 것이 다형성 설명서 앞에서 CaptionTv인스턴스를 CaptionTv타입의 참조변수 외에도 조상인 Tv클래스 타입의 참조변수로도 다룰 수 있다고 했는데요. 이 둘의 차이는 사용할 수 있는 멤버의 개수입니다. CaptinoTv타입의 참조변수로는 CaptionTv인스턴스의 모든 멤버를 사용할 수 있지만... Tv타입의 참조변수로는 CaptionTv인스턴스의 모든 멤버를 사용할 수 없습니다. 단지, Tv클래스에 정의된 멤버만 사용할 수 있습니다. 실제 인스턴스가 CaptionTv인스턴스임에도 불구 하고... Tv타입의 참조변수로는... Tv클래스에 정의된 5개의..