TIL/JAVA 13

[TIL] 다형적 참조(JAVA)

데일리 스크럼 시간에 다형적 참조가 무엇인지에 대한 질문이 나왔는데, 어떻게 설명해야할지 순간 정리가 되지 않았다.중요한 개념이니 TIL시간을 기회로 다형적 참조에 대해 정리해보려한다. 1. 다형적 참조란?다형적 참조란 부모 타입의 변수가 자신의 하위 인스턴스를 참조하는 것이다.  아래 그림과 같이 Child가 Parent를 상속 받는다고 하자. 그렇다면 Parent의 인스턴스과 Child의 인스턴스는 각각 아래 그림과 같을 것이다.Parent 인스턴스에는 Parent 클래스 객체 1개가 있고, Child 인스턴스에는 Parent와 Child 2개의 클래스 객체가 들어있다.  일반적으로 선언된 변수와 동일한 타입의 인스턴스를 참조한다.Parent p=new Parent(); //Parent 타입은 Par..

TIL/JAVA 2024.10.31

[TIL] 인터페이스 - 다중 상속 (JAVA)

드디어 다형성 부분을 끝냈다. 추상 클래스, 순수 추상 클래스, 인터페이스 등 여러 흥미로운 내용을 학습했다. 오늘은 그중에서도 가장 인상 깊었던 '다중 상속'에 대해 정리해보겠다. JAVA의 상속을 공부할 때 'JAVA는 다중 상속을 지원하지 않는다.' 라고 배웠었다.그런데 이제 와서 다중 상속(구현)이 된다니 이게 무슨 소린가 싶었다. 🫠(정말 흥미로워..)차근차근 알아보도록 하자.1. 다이아몬드 문제자바에서 `extends` 대상은 단 하나로 제한된다. 즉, 자식은 하나의 부모만 선택할 수 있다.아래 그림과 같은 경우는 금지된다.위 그림과 같이 Child가 다중 상속을 사용한다고하자. 또한 부모 클래스 모두 순수 추상 클래스가 아니라고 가정한다.Child는 부모로부터 sing()이라는 기능을 호출..

TIL/JAVA 2024.10.30

[TIL] static 메서드에서 인스턴스 기능을 사용할 수 없는 이유

강의에서 정적 메서드가 인스턴스의 기능을 사용할 수 없는 이유를 다음과 같이 설명했다.'인스턴스의 기능을 사용하려면 참조값을 알아야한다. 하지만 정적 메서드는 참조값 없이 호출되기 때문에 인스턴스의 기능을 사용할 수 없다.' 음... 두 번째 줄이 어딘가 잘 이해가 가지 않았다.🤔  강의도 반복해서 듣고, 여기저기 검색해본 뒤 나름의 결론을 아래에 다시 정리해보았다.🟡 일반적으로 static메서드에서는 인스턴스 메서드와 인스턴스 변수를 사용할 수 없다.이유는 static 메서드와 인스턴스의 '생성 시점'이 다르기 때문이다.static 메서드/변수JVM이 .class 파일을 메모리에 올릴 때 생성. 즉, 프로그램 실행 시 메서드 영역에 생성된다.인스턴스 메서드/변수`new` 연산자로 생성자를 호출했을 ..

TIL/JAVA 2024.10.29