Beny's Study

10_2. [강의] 접근제한자 별 동일패키지,다른패키지 오버라이드Override 본문

[JAVA]/08. 상속

10_2. [강의] 접근제한자 별 동일패키지,다른패키지 오버라이드Override

76beny 2022. 5. 28. 23:48

접근 제한자 별로 오버라이드 해보기

 

동일 패키지Override

SuperClass

package com.kh.ex03.overriding_test;

public class SuperClass {
	//접근제한자 별로 override실습
	
	private void privateMethod() {
		System.out.println("privateMethod");
	}

	public void publicMethod() {
		System.out.println("publicMethod");
	}
	
	protected void protectedMethod() {
		System.out.println("protectedMethod");
	}
	
	public final void finalMethod() {
		System.out.println("finalMethod");
	}
	
	void defaultMethod() {
		System.out.println("defaultMethod");
	}


}

 

 

ChildClass

package com.kh.ex03.overriding_test;

public class ChildClass extends SuperClass {


	@Override
	public void publicMethod() {
		super.publicMethod();
	}


	@Override
	public void protectedMethod() {
		super.protectedMethod();
	}

	@Override
	void defaultMethod() {
		super.defaultMethod();
	}

}

※extends하고 스페이스로 상속할 클래스 가져올때 패키지 확인 잘해서 가져와야함,잘못하면 전혀다른게...상속되버림

※ 상속하고 오버라이드 단축키 하면 private,final제외한 3가지만 선택할수 있게 뜸


※ private,final은 상속이 불가능!하단에 3개만 오버라이드 된 이유

다른 패키지Override

OtherChildClass

package com.kh.ex03.overriding_test2;

import com.kh.ex03.overriding_test.SuperClass;

public class OtherChildClass extends SuperClass {


	@Override
	public void publicMethod() {
		super.publicMethod();
	}

	@Override
	protected void protectedMethod() {
		super.protectedMethod();
	}

}

※ 오버라이드 2가지밖에 안됨
※ private안되고 final안되고 + default도 안됨
※ 다른패키지에서 상속하면 default도 안된다~(규칙)

 

====> 어차피 오픈할거면 public 으로 하고 protected도 잘 안씀!

 

 


"본 인터넷 사이트 내의 모든 이미지, 문구, 콘텐츠, 내용 등에 대한 저작권은 76beny에게 있습니다.

이를 무단으로 도용, 복사, 전재, 재배포, 2차 변형 등을 할 경우

민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."