• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

자식 클래스와 protected 메서드

24.05.29 20:59 작성 24.05.29 20:59 수정 조회수 93

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

 

package parent;

public class Parent {

    protected static void staticTest(){
        System.out.println("정적 메서드");
    }


    protected void notStaticTest(){
        System.out.println("인스턴스 메서드");
    }

}

 

package child;

import parent.Parent;

public class Child extends Parent {
    public static void main(String[] args) { /
        Paretn.staticTest();
        //정적 메서드는 정적 메서드 호출가능
        Parent parent = new Parent();
        
        parent.notStaticTest();
        // 호출불가 컴파일 오류
         
        Child child = new Child();

        child.notStaticTest();
        // 호출가능 

Child 클래스가 Parent 클래스를 상속 받았고

notStaticTest 메서드의 접근제어자가

protected 인데

Parent parent = new Parent();

parent.notStaticTest();

// 호출불가 컴파일 오류

Child child = new Child();

child.notStaticTest();

// 호출가능

 

둘의 차이가 무엇이어서

호출의 가능여부가 다른지 궁금합니다.

 

 

 

답변 1

답변을 작성해보세요.

0

codesweaver님의 프로필

codesweaver

2024.05.30

안녕하세요. suhyunpar님, 공식 서포터즈 코즈위버입니다.

코드상으로 보면 Parent의 정적메서드를 호출하는 코드에 오타가 있는것으로 보이는데요.

Paretn.staticTest(); 이 부분을 Parent.staticTest(); 로 변경해보시겠어요?

감사합니다.

채널톡 아이콘