Beny's Study
08. 접근제한자 ,다른패키지에서 오버라이드 흐름 코드 예제 본문
오버라이드는 접근제한자 별로 오버라이드가 되는 경우가 있고 안되는 경우가 있다.
또한 다른 패키지 내에서도 접근제한자가 오버라이드 되는경우와 안되는경우가 있다.
이를 코드 예제를 통해 확인해보기 위해 차례대로 부모클래스,자식클래스, 다른패키지 클래스를 작성 한 후
코드의 흐름을 확인 해 보았다 (주석설명)
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 {
//접근제한자 별로 상속 실습
// 상속하고 오버라이드 단축키 하면 private,final제외한 3가지만 선택할수 있게 뜸
// private,final은 상속이 불가능!하단에 3개만 오버라이드 된 이유
@Override
public void publicMethod() {
// TODO Auto-generated method stub
super.publicMethod();
}
// @Override
// protected void protectedMethod() {
// // TODO Auto-generated method stub
// super.protectedMethod();
// }
// 부모의 메소드보다 접근제한자를 더 넓게 설정 가능하다.
// 위의 주석처리한 protected를public으로 변경해도 가능(하단오버라이드가 그 예시 )
@Override
public void protectedMethod() {
// TODO Auto-generated method stub
super.protectedMethod();
}
@Override
void defaultMethod() {
// TODO Auto-generated method stub
super.defaultMethod();
}// 3껄로 받아오기 super하고 엔터쳐서 패키지3껄로
}
주의: extends하고 스페이스로 상속할 클래스 가져올때 패키지 확인 잘해서 가져와야함,잘못하면 전혀다른게...상속되버림
OtherChildClass
package com.kh.ex03.overriding_test2;
import com.kh.ex03.overriding_test.SuperClass;
//다른 패키지에서 오버라이드 해보기!
public class OtherChildClass extends SuperClass {
//오버라이드 2가지밖에 안됨
// private안되고 final안되고 + default도 안됨
// 다른패키지에서 상속하면 default도 안된다~(규칙)
@Override
public void publicMethod() {
super.publicMethod();
}
@Override
protected void protectedMethod() {
super.protectedMethod();
}// 3번째 패키지거 가져옴
}
TIP! 어차피 오픈할거면 접근제한자는 왠만하면 public 으로 하자!(protected도 잘 안씀!)
"본 인터넷 사이트 내의 모든 이미지, 문구, 콘텐츠, 내용 등에 대한 저작권은 76beny에게 있습니다.
이를 무단으로 도용, 복사, 전재, 재배포, 2차 변형 등을 할 경우
민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."
'[JAVA] > 08. 상속' 카테고리의 다른 글
10_1. [강의] 상속 기본흐름 (0) | 2022.05.28 |
---|---|
09. 오버로딩 (0) | 2022.04.13 |
07. 상속의 기본 흐름 코드예시 (0) | 2022.04.13 |
06. final (마지막의,변동될수없는) (0) | 2022.04.13 |
05. super()와 super.의 차이 (0) | 2022.04.13 |