묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
JDK 21버전 오류
자바 강의도중 JDK버전을 21을 사용하라고 하시더라고요.. 기존에 17버전을 사용을 했다가 21버전으로 사용을 한다고 해서 21버전으로 해보고 있는 도중에 Hello Java를 실행 시키니 에러가 뜨면서 도저히 해결이 안되고 있습니다 ㅠㅠ
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ScannerWhile4 Switch문 질문
1. 위의 코드에서 case1 에 있는 변수 price를 case2에 사용하면 오류가 나는 이유가 무엇인가요? 오류가 나지 않게 switch문 밖에 price를 선언하면 어떻게 scanner을 사용해서 System.out.print("상품의 가격을 입력하세요: ");밑에 사용 하는 방법은 뭘까요??
-
미해결스프링 핵심 원리 - 기본편
AppConfig를 스프링 방식으로 전환 후, MemberApp, OrderApp에서 스프링 로그가 출력되지 않습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]AppConfig를 스프링 방식으로 전환 후, 수업에서 보이는 것 처럼 MemberApp, OrderApp에서 스프링 로그가 출력되지 않습니다.[OrderApp 실행화면]자바 버전은 openjdk 21, springframework 버전은 3.2.1 입니다.@Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public static MemoryMemberRepository memberRepository() { return new MemoryMemberRepository(); } @Bean public OrderService orderService() { return new OrderServiceImpl(memberRepository(), discountPolicy()); } @Bean public static RateDiscountPolicy discountPolicy() { // return new FixDiscountPolicy(); return new RateDiscountPolicy(); } }public class MemberApp { public static void main(String[] args) { ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); MemberService memberService = applicationContext.getBean("memberService", MemberService.class); Member member = new Member(1L, "memberA", Grade.VIP); memberService.join(member); Member findMember = memberService.findMember(1L); System.out.println("new Member = " + member.getName()); System.out.println("find Member = " + findMember.getName()); } }public class OrderApp { public static void main(String[] args) { ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); MemberService memberService = applicationContext.getBean("memberService", MemberService.class); OrderService orderService = applicationContext.getBean("orderService", OrderService.class); Long memberId = 1L; Member member = new Member(memberId, "memberA", Grade.VIP); memberService.join(member); Order order = orderService.createOrder(memberId, "itemA", 10000); System.out.println("order = " + order); } }
-
해결됨스프링 핵심 원리 - 기본편
역할에 대한 구현이 하나만 존재하는 경우
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]이미 비슷한 질문과 답변이 있었네요!-> 추상화도 비용이기 때문에, 확장 가능성이 없다면 처음에는 구체 클래스로 직접 구현 하고 이후 확장 필요성이 생기면 리팩토링을 하면서 추상화를 사용할 수 있다.구체에 의존하지 않고 추상에 의존해야한다는 DIP 원칙을 예시 코드에서는 OrderServiceImpl 이 MemberRepository, DiscountPolicy 라는 추상 클래스에 의존해서 달성하고 있는 것으로 이해 했습니다. 만약 MemberRepository 라는 역할의 구현이 MemoryMemberRepository 밖에 없고 구현이 늘어날 가능성이 거의 없는 경우라고 가정하면, 그때도 MemberRepository 라는 인터페이스를 만들고 OrderServiceImpl 이 구체 클래스가 아닌 추상 클래스를 의존하도록 만드는 것이 일반적인지 현업에서의 경험이 궁금합니다. 구체 클래스만 작성해서 바로 OrderServiceImpl 이 의존하도록 만들고 싶은 유혹이 올 것 같아요.
-
미해결김영한의 실전 자바 - 기본편
이런식으로 해도 객체 지향 프로그램인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.package oop1.ex; import java.util.Scanner; public class Account { Scanner scanner = new Scanner(System.in); int balance; int deposit() { System.out.print("입금할 금액을 입력하세요.\n↳ "); int depositAmount = scanner.nextInt(); balance += depositAmount; System.out.println("잔액: " + balance + "원"); return balance; } int withdraw() { System.out.print("출금할 금액을 입력하세요.\n↳ "); int withdrawAmount = scanner.nextInt(); if (balance > withdrawAmount) { balance -= withdrawAmount; } else { System.out.println("잔액이 부족합니다."); } System.out.println("잔액: " + balance + "원"); return balance; } void checkAmount() { System.out.println("잔액: " + balance); } } package oop1.ex; import java.util.Scanner; public class AccountMain { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Account account = new Account(); while (true) { System.out.println("-------------메뉴를 선택하세요-------------"); System.out.print("1. 입금 | 2. 출금 | 3. 잔액 확인 | 4. 종료\n↳ "); int selectMenu = scanner.nextInt(); switch (selectMenu) { case 1: account.deposit(); break; case 2: account.withdraw(); break; case 3: account.checkAmount(); break; case 4: System.out.println("프로그램을 종료합니다."); return; default: System.out.println("잘못된 입력입니다. 다시 입력해주세요"); break; } } } } 제 나름 입력까지 하는 프로그램으로 만들었는데 인스턴스 안에 메서드에 print를 넣는게 좋은지 메인 클래스에 print를 넣는게 좋은지 잘 모르겠습니다코드도 잘 짰는지 궁금합니다
-
미해결스프링 핵심 원리 - 기본편
test 실행후 결과
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]어느 순간부터 테스트클래스를 실행시키면 아래 결과창에 Test Results라고만 나오고 각각의 test들의 결과는 나오지 않습니다. 무엇을 어떻게 설정해야 할까요? 테스트 이름 뿐만 아니라 class의 이름도 뜨지 않습니다.
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ScannerWhileEx2 질문
package scanner.ex; import java.util.Scanner; public class ScannerWhileEx1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(true){ System.out.print("이름을 입력하세요 (종료를 입력하면 종료): "); String name = scanner.nextLine(); if(name.equals("종료")){ System.out.println("프로그램을 종료합니다."); break; } System.out.print("나이를 입력하세요: "); int age = scanner.nextInt(); scanner.nextLine(); //숫자 입력 후의 줄바꿈 처리 System.out.println("입력한 이름: " + name + ", 나이: " + age); } } }package scanner.ex; import java.util.Scanner; public class ScannerWhileEx2 { public static void main(String[] args) { Scanner input = new Scanner(System.in); while(true){ System.out.print("상품의 가격을 입력하세요 (-1을 입력하면 종료): "); int price = input.nextInt(); //input.nextLine(); if(price == -1){ System.out.println("프로그램을 종료합니다."); break; } System.out.print("구매하려는 수량을 입력하세요: "); int num = input.nextInt(); //input.nextLine(); System.out.println("총 비용: " + price * num); } } }ScannerWhileEx1에서는 숫자 입력 뒤 줄바꿈 처리를 해줘야한다고 배웠는데ScannerWhileEx2에서는 숫자 입력 뒤 줄바꿈 처리를 하지 않아도 오류가 안생깁니다.두 문제의 차이가 궁금합니다.문자열과 숫자가 입력될 때만 줄바꿈 처리를 해주는건가요?
-
미해결스프링 핵심 원리 - 기본편
application 실행 시 log-demo 페이지 404 에러가 뜹니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 프로젝트 전체 파일 : https://drive.google.com/file/d/1GSLGt7mplnz7FSfy0AgcI-_TVa_rDOAo/view?usp=sharing LogDemoController / LogDemoService 작성하여 application을 실행 시켰고 localhost:8080/log-demo 접근 시 404에러가 뜹니다.다른 로그는 남지 않고 아래와 같은 로그만 계속 남겨집니다.강의 초반 패키지 생성 시 따라가지 못하여 com.example.inflearn_01로 생성했었는데 이 부분이 문제일까요?다른 것들 최대한 따라한다고 했봤는데 이부분에서 문제가 생깁니다 😭😭 확인한번 부탁드립니다!
-
미해결스프링 핵심 원리 - 기본편
ConfigurationSingletonTest 코드 오류 여쭤봅니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.ConfigurationSingletonTest 코드에서 오류가 나서 질문드립니다. cannot find symbol이란 에러가 뜨는데 찾아보니경우1) orderServiceImpl.java 에서 memberRepository를 주입하지 않아 생기는 오류라고 뜹니다. 경우2) import 문의 문제일 수도 있다고 뜹니다. 둘 중 어떤 경우인지, 또 어떻게 고쳐야 할 지 모르겠어서 여쭤봅니다. 문제가 생긴 코드 OrderServiceImpl
-
해결됨스프링 핵심 원리 - 기본편
21:40 필드주입 과정
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]21:40 쯤 테스트 과정에서 필드 주입으로 인해 null이 뜬다 하셨는데 이해가 안갑니다.필드 주입으로 인해 처음 객체가 생성될 시 의존성 주입으로 생성됨그로 인해 외부에서 다시 DI 를 하면 변경이 안됨DI 가 되질 않아서 NULL 이 떴다? 라고 이해하면 되는건가요?
-
미해결스프링 핵심 원리 - 기본편
필드 주입의 순환 참조 탐지 시기
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요 강의를 듣고 관련 질문들을 찾아보아도 해결되지 않아 문의 남깁니다.스프링에서 생성자 주입을 사용하는 경우 스프링 컨텍스트가 시작하며 순환 참조를 탐지하고 예외를 발생시키는 것으로 알고 있습니다. 그래서 이를 피하기 위해 좋지 않은 예시인 것은 알지만 필드 주입 or setter 주입을 사용할 수 있는 것으로 알고 있습니다.헌데 코드처럼 필드 주입을 통해 AService가 BService의 객체를 필드 주입으로 설정하고, BService 또한 AService의 객체를 필드 주입하도록 설정했습니다. 이 때, 스프링 컨텍스트가 시작되며 해당 순환 참조와 관련된 메소드 호출이 일어나기 전에 스프링이 미리 이를 감지하고 예외를 던져버리는데 제가 이해한 내용이 잘못된 것인지 의문이 생깁니다... IDE는 인텔리제이를 쓰고 있고, 스프링부트 버젼은 2.7.8입니다@Controller public class TestController { @Autowired private AService aService; @GetMapping("/test") public void test() { } } @Service public class AService { @Autowired private BService bService; @Transactional public void test() { ; } } @Service public class BService { @Autowired private AService aService; @Transactional public void test2() { } }
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
[7. Scanner][문제와풀이4] ScannerWhileEx3 질문
안녕하세요 선생님, 선생님께서 남겨주신 코드와 다르게 제 코드처럼 작성해도 무방할지 질문드립니다. [선생님 코드] 선생님께서 작성하신 코드는 input 지역변수의 스코프 값이 넓습니다.public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int sum = 0; int count = 0; int input = 0; System.out.println("숫자를 입력하세요, 입력을 중단하려면 -1을 입력하세요 : "); while (true) { input = scanner.nextInt(); if (input == -1) { break; } sum += input; count++; } double average = (double) sum / count; System.out.println("입력한 숫자들의 합계 : " + sum); System.out.println("입력한 숫자들의 평균 : " + average); }[제가 작성한 코드] 저는 input의 스코프값이 넓다고 생각해서 자체적으로 while문에서만 해당 변수를 부여하고, 사용했는데 하기와 같이 사용해도 무방할까요?public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int sum = 0; int count = 0; System.out.println("숫자를 입력하세요, 입력을 중단하려면 -1을 입력하세요 : "); while (true) { int input = scanner.nextInt(); if (input == -1) { break; } sum += input; count++; } double average = (double) sum / count; System.out.println("입력한 숫자들의 합계 : " + sum); System.out.println("입력한 숫자들의 평균 : " + average);
-
미해결김영한의 실전 자바 - 기본편
클래스 도입 부분 강의 내용 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]'클래스 도입' 강의 부문 2에서 '2:42' 파트에 "클래스는 관례상 대문자로 시작하고 낙타 표기법을 사용한다." 라고 나와있는데, 대문자로 시작하는 건 'Pascal(파스칼) naming' 이고, 낙타 표기법인 Camel naming은 첫 단어는 소문자로 시작하고, 그 이후 단어 첫 글자는 대문자로 되는 걸로 알고 있습니다. 예를 들어서교안에 적어놓으신 MemberService를 카멜 케이스로하면 memberService이지 않을까요?Pascal : MemberServiceCamel: memberServiceSnake: member_service
-
미해결김영한의 실전 자바 - 기본편
코드에 따른 시간복잡도 차이
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]17:10에서 전체 합을 private void로 따로 만들어 주셨습니다. 위의 사진이 제가 짠 코드입니다. 해당 사진은 선생님께서 짜주신 코드입니다. 두 사진에 있어 차이점은 totalPrice에 대해서 캡슐화를 하였는가 안하였는가에 대한 차이 뿐인데요.최근 알고리즘 공부를 하다가 시간복잡도에 대한것을 공부하고 있습니다.선생님과 제가 짠 코드에서 차이점이 있다면 저는 "displayItems에 직접 int total을 넣어서 for문에 입력한 것"이고, 선생님은 "calculateTotalPrice 생성자를 만드신 뒤에 int totalPrice를 선언"해 주셨는데요.혹시 두 코드에 있어 시간복잡도는 어떤 코드가 더 오래 걸리는지 알 수 있을까요???
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
double형 오버플로우
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의를 보다가 문득 궁금한 부분이 생겨서 질문 드립니다. int의 경우 오버플로우가 발생하면 Long 형으로 형 변환을 하면 된다고 하셨는데 double을 사용하다가 오버플로우가 발생한다면 어떻게 처리를 하는지 궁금해져서 질문드립니다. 혹시 double형을 사용하면서 오버플로우가 발생하는 상황 자체가 잘 못 된것일까요?
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
[Scanner] 7-3.반복예제(ScannerWhile3) 질문
안녕하세요 선생님 선생님께서 작성하신 코드와 다르게 하기 코드처럼 작성해도 무방할까요?코드 결과값은 동일하게 나타내는 것으로 확인되었습니다. 다만 차이가 있거나 더 좋은 코드를 작성한다면 어떤 코드가 좋을지 몰라 질문드립니다![선생님 작성 코드] - while문 출력 후 -> 입력 정수의 합 출력public static void main(String[] args) { Scanner input = new Scanner(System.in); int sum = 0; while (true) { System.out.print("정수를 입력하세요 (0을 입력하면 종료) : "); int num = input.nextInt(); if (num == 0) { break; } sum += num; } System.out.println("입력한 모든 정수의 합 : " + sum);[제가 작성한 코드] while문 내 if 구문에서 -> 입력 정수의 합 출력public static void main(String[] args) { Scanner input = new Scanner(System.in); int sum = 0; while (true) { System.out.print("정수를 입력하세요 (0을 입력하면 종료) : "); int num = input.nextInt(); if (num == 0) { System.out.println("입력한 모든 정수의 합 : " + sum); break; } sum += num; }
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
자바 default 접근제어자임에도 다른 클래스에서 호출이 되네요.. 뭐가 문제일까요
안녕하세요 나도코딩님! 덕분에 직장다니면서 잘 공부하고 있는 애청자 1입니다. 접근제어자 부분 공부중입니다.VSCODE로 코딩하고 있구요!챕터 07에서 이렇게 챕터 7에서 만든 블랙박스리퍼비쉬 클래스가 기존에 있었고,챕터8에서 resolution변수를 호출하면 빨간 선이 생기며 안되어야 하는 게 정상인데 public class _05_accessModifierTest { public static void main(String[] args) { BlackBoxReferbish b1 = new BlackBoxReferbish(); b1.modelName = "까망이"; // 퍼블릭 변수엿음 b1.resolution = "FHD";컨트롤 키를 누른 채로 챕터8에 임시로 만든 블랙박스리퍼비쉬 b1.resolution 변수가 잘 불러와지네요..아무 것도 적지 않으면 default 접근제어자로 처리되어서 같은 클래스 내에서만 접근이 가능해야 하는데무엇 때문에 가능한 걸까요? public class BlackBoxReferbish { public String modelName; String resolution; private int price; protected String color;
-
해결됨C개발자를 위한 최소한의 C++
예외 클래스에서 catch 안의 데이터형이 참조자인 이유
안녕하세요. 강의 잘 보고 있습니다.강의를 듣다가 궁금한 것이 생겨서 질문 드립니다. catch(MyException &exp) { // 생략 }이 강의 예제에서 catch의 예외 데이터형에 클래스 참조자를 받도록 하였는데 만약 아래처럼 참조자를 사용하지 않으면 복사생성이 되나요?catch(MyException exp) { // 생략 }
-
미해결김영한의 실전 자바 - 기본편
다형적 참조의 오버라이딩
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다른 분께서 올려주신 질문 글을 읽고 저 또한 같은 의문이 생겼지만, 그에 대한 답변이 저에게는 잘 와 닿지 않아서 제가 이해한 바를 적어봅니다. 상속 관계에 있는 객체의 메서드를 사용할 때는, 우선 메서드를 사용하는 변수의 참조값을 따라 인스턴스를 찾고, 인스턴스 내의 변수 타입과 동일한 클래스 타입부터 시작하여 메서드를 찾는다고 하셨습니다. 그리고 이렇게 메서드를 찾을 때는 자식 클래스에서 부모 클래스 방향으로 올라가는 것만 가능하고, 부모 클래스에서는 자식 클래스에 대한 정보가 없으므로 반대는 불가능하다고 말씀하셨습니다. 그런데 부모 변수가 자식 인스턴스를 참조하는 다형적 참조의 경우, 메서드를 호출하는 변수의 타입은 부모 클래스이므로 메서드를 부모 클래스에서 찾을 것이고, 부모 클래스는 자식 클래스에 대한 정보가 없는데 어떻게 자식 클래스에 해당 메서드가 오버라이딩이 되었는지 판단하는지 잘 이해가 되지 않았습니다. 제 식대로 내린 결론은 다음과 같습니다.다형적 참조에서는 변수의 타입은 Parent지만, 이 변수가 참조하는 것은 자식 인스턴스인 Child입니다. 호출된 메서드를 찾을 때는 변수의 타입과 같은 Parent에서 탐색하는 것은 맞지만, 오버라이딩 여부는 Child 인스턴스 내에서 별개로 확인하는 것이고 Parent 인스턴스와는 무관합니다.제가 이해한 방식이 맞나요?
-
미해결김영한의 실전 자바 - 기본편
자바 중급,고급편 내용
자바 중급, 고급편 강의는 대략적으로 어떤 내용의 강의인가요??