묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 1편
정의한 예외
여기에서 왜 MyCheckedException 은 체크 예외인가요 ?Exception 은 체크예외, UncheckedException 둘다의 부모 아닌가요?
-
미해결김영한의 실전 자바 - 중급 1편
예외 처리3 강의 return 질문
강의를 보면 public void method(){return ; }이렇게 해서 오류가 발생하면 메서드를 종료시키셨는데, 만약 public String method(){return ;} 을 하면 그냥 단순히 null 값을 return 하는 건가요 ? 만약 String 타입일때 강제 종료 시키고 싶으면 어떻게 해야하나요?
-
해결됨C개발자를 위한 최소한의 C++
임시 객체와 보이지 않는 복사 생성 강의 질문
임시 객체 개념 자체가 많이 낯설어서 2가지 질문을 해보려고 합니다 ㅠㅠ클래스가 함수의 매개변수나 반환자료형일 경우, 상수형 참조를 하라고 하셨는데특별히 이렇게 해야하는 이유가 있는걸까요??19분쯤에 등장하는 예제에서 함수의 매개변수를 상수형 참조로 바꿔도 여전히 변환생성자가 불러와지는 걸 봤을 때는 특별히 차이점이 있어보이지 않습니다... 17분 50초 쯤에 등장하는 '비const 참조는 lvalue에만 바인딩할 수 있습니다" 라는 오류가 등장하는데 이 오류가 이해가 되질 않습니다..
-
미해결김영한의 실전 자바 - 중급 1편
열거형 - ENUM 수업자료 오타
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]5. 열거형 - ENUM.pdf 의 p.18 에 SLIVER 오타가 있습니다.SLIVER -> SILVER 로 변경되어야 할 것 같습니다.
-
해결됨C개발자를 위한 최소한의 C++
섹션8 3번째 강의 (실습 프로젝트 - 문자열 필터개선) 질문
void CMyStringEx::onSetData(const char*& param) { cout << "CMyStringEx::onSetData" << endl; if (param != nullptr) { if (strcmp(param, "FORBID") == 0) { param = "****"; } } CMyString::onSetData(param); return; }실습 코드 관련 질문입니다파라미터가 const char*& 로 되어있는데 아래 param = "****" (강의 코드기준 param="우리귀요미")처럼 매개변수에 대입을 하는 부분이 있는데 const가 붙어있어도 매개변수 값 수정이 가능한가요?
-
미해결스프링 핵심 원리 - 기본편
옵션 처리
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]좀 이상한 질문일 수는 있는데 @Test void AutoWiredOption() { ApplicationContext ac = new AnnotationConfigApplicationContext(TestBean.class); } static class TestBean { @Autowired(required = false) public void setNoBean1(Member noBean1) { System.out.println("noBean1 = " + noBean1); } @Autowired public void setNoBean2(@Nullable Member noBean2) { System.out.println("noBean2 = " + noBean2); } @Autowired public void setNoBean1(Optional<Member> noBean3) { System.out.println("noBean3 = " + noBean3); } } 이 코드는 그냥 @Autowired에서 의존관계에 주입할 스프링 빈이 없을 때 동작을 실행하기 위한 그냥 단순한 코드인가요??ApplicationContext ac = new AnnotationConfigApplicationContext(TestBean.class);에서는 TestBean을 설정 정보로 넘기고는 있지만 @Bean이나 @Component같은 어노테이션이 포함이 되어 있어야 해당 클래스 명이나 메서드 명으로 스프링을 등록하는게 아닌가요...? @Autowired는 그냥 단순히 스프링 컨테이너에서 타입과 맞는 스프링 빈을 찾아서 등록해주는 건데 이해가 잘 되지 않아서요.
-
미해결스프링 핵심 원리 - 기본편
필드 주입
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다른 필드 주입 관련 게시글을 다 보고 왔는데 제가 이해한 것이 맞는지 모르겠습니다. 강의에서 나온 코드를 보면 nullpointexception이 발생한다고 했는데 생각하기엔 그렇구나 하는데 뭔가 완벽히 이해가 안갑니다. 그리고 외부에서 변경이 불가능 하다고 했는데 생성자 주입에서 변경이 불가능 한 것과는 다른 건가요?
-
미해결김영한의 실전 자바 - 기본편
인스턴스 메서드의 인스턴스 소속
'인스턴스 메서드가 인스턴스에 소속되어 있다'는 부분이 잘 이해가 되지 않아 질문드립니다.이전 강의에서 메서드는 힙 영역이 아닌 메서드 영역에 존재한다고 배웠습니다. ClassA라는 클래스가 존재하고 해당 타입 인스턴스를 2개 만들었다고 가정해보겠습니다. 그리고 참조변수를 통해 인스턴스에 존재하는 인스턴스 메서드를 호출하게 되면, 메서드 영역에 존재하는 동일한 메서드 코드가 호출됩니다. 이 부분이 '인스턴스 메서드는 인스턴스에 소속'이라는 부분과 충돌되는 것처럼 느껴지는데요.여기에서 말하는 '소속'이 물리적으로 메모리 상 같은 영역에 소속되어 있다는 뜻이 아니라, 인스턴스를 생성해야 인스턴스 메서드를 사용할 수 있기 때문에 인스턴스에 소속되어 있다고 하신걸까요...??
-
미해결김영한의 실전 자바 - 기본편
서버와 클라이언트
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]자동차가 서버, 드라이버가 클라이언트인걸까요? 웹서버와 클라이언트(브라우저)와는 아예 다른 개념인걸까요? 헷갈립니다 ㅠㅠ
-
미해결진짜! 자바스크립트(Javascript) - 기초부터 고급까지
var 변수의 문제점 설명하실 때 질문 있습니다.
function testShadowing() { let x = 5; if (true) { let x = 10; console.log(x); } console.log(x); } testShadowing()위와 같이 let으로 x 변수를 2번 할당했는데, 실제 메모리에는 어떻게 할당이 되나요?블록 스코프라고 하더라도 함수 스코프 안에서 블록 스코프가 만들어 질 것으로 생각이 되는데(뇌피셜입니다.), 이미 함수 스코프에서 x라는 변수명을 사용하고 있어서 블록 스코프에서 x는 자바 스크립트 엔진에서 어떻게 받아들이고 실제 메모리에 어떤 식으로 메모리 할당을 하는지 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
추상메서드가 존재하지 않는 추상클래스
추상메서드가 존재하지 않는 추상클래스가 존재하는 것이 일반적인 상황은 아닌거죠?오직 자식 클래스에게 속성이나 기능을 제공할 목적으로 어떤 클래스를 만들었기에 해당 클래스는 인스턴스를 생성할 필요가 없다고 판단되는 경우, 추상클래스로 선언할 수 있겠다고 생각됩니다. 그렇다면 해당 추상클래스는 추상메서드가 단 1개도 존재하지 않는 것인데요. 이게 문법적으로는 오류가 없다는 것은 알겠지만 이러한 상황이 실무에서 발생하는 상황인지 알고 싶습니다.
-
미해결김영한의 실전 자바 - 기본편
부모 자식 타입
Parent poly= new Child() ;Child child = poly ; 가 자식이 부모를 담을 수 없어서 안된다고 하셨는데, 혹시 논리적으로 왜 그런지 알 수 있을까요? 왜냐하면 제 생각에는 결국에는 Child child = new Child(); 로 되어서 가능한거 아닌가요 ? 혹시 안되는 이유가 이미 parent poly 는 화살표가 parent 클래스를 향하고 있기 떄문에 아무리 참조값 안에 Child , Parent class 둘다 있어도 Child child = poly ; 할때 Child 가 parent 인스턴스를 우선 참조해서 오류가 발생하는건가요 ? 도무지 Child child = new Child () ; 는 가능한데Parent poly = new Child() ;Child child =poly(new Child) ; 가 안되는 이유를 모르겠습니다
-
미해결김영한의 실전 자바 - 기본편
cmd + O Override Method 기능 사용중에..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 선생님은 직접 extends/implements 키워드 뒤에 쓴 클래스나 인터페이스만 뜨던데 Object가 같이 뜹니다. Object는 안 뜨게 하는 방법 없을까요??
-
미해결김영한의 실전 자바 - 중급 1편
return을 객체로 할 때 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 항상 강의 잘 보고 있습니다! 수강 중에 궁금한 것이 생겨 질문 남깁니다.return타입이 MyInteger타입으로 했는데 출력으로는 참조값이 아닌 String형으로 나온 건지 이해가 잘 되지 않습니다..어떻게 toString()이 호출된 적도 없는데 실행 결과가 아래처럼 나오는 건지 잘 모르겠습니다.혹시 System.out.println() 때문에 내부에서 toString을 호출해서 출력이 아래처럼 나온건가요? ?
-
미해결스프링 핵심 원리 - 기본편
구현체가 런타임에서 달라져야 하는 경우의 의존성 주입
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]요청의 타입에 따라 A요청은 ServiceA, B요청은 ServiceB등으로 런타임에서 구현체가 선택되어야 하는 경우에는 어떻게 해야할까요?예를 들어 주문 제휴사와 배달 대행사를 중계하는 서비스를 만들 때,배달 대행사의 배달 상태 변경 콜백을 주문 제휴사로 다시 콜백 API를 호출해야 하는데, 주문 제휴사 마다 특정한 동작이 필요해 구현체가 달라지는 경우 (ex. URL 차이, 필드값 차이 등) 어떻게 구현하는것이 옳은 방향일까요?
-
미해결김영한의 실전 자바 - 기본편
인터페이스 멤버변수 final 질문
인터페이스에서 제공하는 멤버변수에서 final이 붙는 이유가 궁금합니다. static의 경우, 인터페이스를 인스턴스화할 수 없기 때문에 애초에 인터페이스 차원에서 인스턴스 변수를 제공하지 않는다고 이해하였는데 final은 그 이유를 잘 모르겠습니다.
-
미해결김영한의 실전 자바 - 기본편
참조형과 메서드 호출질문있습니다.
참조형과 메서드 호출 - 활용 10분 20초에 null은 왜나오는건가요?
-
미해결김영한의 실전 자바 - 기본편
인텔리제이 오류
클래스 실행시에 간헐적으로 오류가 발생하네요.빌드를 10번하면 7번정도 오류가 발생하는것 같아요. 포트를 이미 사용중이라는 것 같은데... 인터넷에 쳐봐도 해결방법이 안나오네요...혹시 해결법 아시는분 계실까요?? Abnormal build process termination: C:\Users\박정찬\.jdks\openjdk-21.0.1\bin\java.exe -Xmx700m -Djava.awt.headless=true "-Djna.boot.library.path=C:\Program Files\JetBrains\IntelliJ IDEA 2023.1.3/lib/jna/amd64" -Djna.nosys=true -Djna.noclasspath=true --add-opens jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED "-Dpreload.project.path=C:/Users/박정찬/Desktop/인터넷 강의 자료/자바 김영한/java-basic" -Dpreload.config.path=C:/Users/박정찬/AppData/Roaming/JetBrains/IntelliJIdea2023.1/options -Dcompile.parallel=false -Drebuild.on.dependency.change=true -Didea.IntToIntBtree.page.size=32768 -Djdt.compiler.useSingleThread=true -Daether.connector.resumeDownloads=false -Dio.netty.initialSeedUniquifier=1929828927587536610 -Dfile.encoding=x-windows-949 -Duser.language=ko -Duser.country=KR -Didea.paths.selector=IntelliJIdea2023.1 "-Didea.home.path=C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3" -Didea.config.path=C:/Users/박정찬/AppData/Roaming/JetBrains/IntelliJIdea2023.1 -Didea.plugins.path=C:/Users/박정찬/AppData/Roaming/JetBrains/IntelliJIdea2023.1/plugins -Djps.log.dir=C:/Users/박정찬/AppData/Local/JetBrains/IntelliJIdea2023.1/log/build-log "-Djps.fallback.jdk.home=C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/jbr" -Djps.fallback.jdk.version=17.0.7 -Dio.netty.noUnsafe=true -Djava.io.tmpdir=C:/Users/박정찬/AppData/Local/JetBrains/IntelliJIdea2023.1/compile-server/java-basic_51dbb69c/_temp_ -Djps.backward.ref.index.builder=true -Dtmh.instrument.annotations=true -Dtmh.generate.line.numbers=true "-Djps.kotlin.home=C:\Program Files\JetBrains\IntelliJ IDEA 2023.1.3\plugins\Kotlin\kotlinc" -Dkotlin.incremental.compilation=true -Dkotlin.incremental.compilation.js=true -Dkotlin.daemon.enabled -Dkotlin.daemon.client.alive.path=\"C:\Users\박정찬\AppData\Local\Temp\kotlin-idea-10692411316084801441-is-running\" -Dide.propagate.context=false -classpath "C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/java/lib/jps-launcher.jar" org.jetbrains.jps.cmdline.Launcher "C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/java/lib/jps-builders.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/java/lib/jps-builders-6.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/java/lib/jps-javac-extension.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/util.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/util-8.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/util_rt.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/annotations.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/3rd-party-rt.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/protobuf.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/jps-model.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/java/lib/javac2.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/forms_rt.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/java/lib/aether-dependency-resolver.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/idea_rt.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/JavaEE/lib/jasper-v2-rt.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/Kotlin/lib/jps/kotlin-jps-plugin.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/util.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/eclipse/lib/eclipse-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/eclipse/lib/eclipse-common.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/ant/lib/ant-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/JavaEE/lib/javaee-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/uiDesigner/lib/jps/java-guiForms-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/space/lib/space-java-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/devkit/lib/devkit-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/platform-langInjection/lib/java-langInjection-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/javaFX/lib/javaFX-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/javaFX/lib/javaFX-common.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/Groovy/lib/groovy-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/Groovy/lib/groovy-constants-rt.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/maven/lib/maven-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/gradle-java/lib/gradle-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/JPA/lib/jps/javaee-jpa-jps.jar" org.jetbrains.jps.cmdline.BuildMain 127.0.0.1 49155 24ad3385-4fa5-4cd4-9376-31335102b646 C:/Users/박정찬/AppData/Local/JetBrains/IntelliJIdea2023.1/compile-serverBe careful, logger will be shut down earlier than application: Unable to make field private static java.util.IdentityHashMap java.lang.ApplicationShutdownHooks.hooks accessible: module java.base does not "opens java.lang" to unnamed module @2f4d3709Build process started. Classpath: C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/java/lib/jps-launcher.jarError connecting to 127.0.0.1:49155; reason: Address already in use: no further information: /127.0.0.1:49155io.netty.channel.AbstractChannel$AnnotatedSocketException: Address already in use: no further information: /127.0.0.1:49155Caused by: java.net.BindException: Address already in use: no further information at java.base/sun.nio.ch.Net.pollConnect(Native Method) at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:682) at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:973) at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:689) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:652) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at java.base/java.lang.Thread.run(Thread.java:1583)Exiting.
-
미해결김영한의 실전 자바 - 중급 1편
Wrapper 클래스는 static 클래스인건가요?
강의 중간에 보면 Integer.valueOf(10) 이런식으로 바로 사용이 가능하던데그렇다면 Integer는 static 클래스여야하지 않나 싶었습니다근데 Integer 클래스로 올라가니 이렇게 나오는데, static클래스가 아닌건가요?
-
미해결자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
구현과 오버라이딩
추상 클래스 내의 추상 메서드가 하위 클래스가 구현해야 하는 메서드라는 것은 { } 이렇게 중괄호까지만 표기가 되어도 되는 건가요?구현은 구현부 { } 표기가 된 것이고 오버라이딩은 구현부 내에 코드가 있던 것을 다시 재정의 할 때를 말하는 건가요?추상클래스의 바로 아래 하위 클래스에서 추상 메서드는 구현만 가능하고 오버라이딩 되는 것은 아닌건가요?