| 클래스 | 같은 패키지 | 다른 패키지 | 다른 패키지(자식 클래스) | |
|---|---|---|---|---|
| private | O | X | X | X |
| default | O | O | X | X |
| protected | O | O | X | O |
| public | O | O | O | O |
※ default라고 직접 쓰는 것이 아니라
public, protected, private 를 쓰지 않은 상태
※ protected는 다른 패키지에서 Sub 클래스라면 접근이 가능하다
단 Sub 클래스로 생성해야만 한다
Super클래스로 생성하면 접근이 안된다
package com.zoo;
public class Zoo {
public void tiger() {
System.out.println("무서운 호랑이");
}
protected void giraffe() {
System.out.println("목이 긴 기린");
}
void elephant() {
System.out.println("뚱뚱한 코끼리");
}
private void lion() {
System.out.println("멋진 사자");
}
}
package com.zoo;
public class Zoo2 {
public static void main(String[] args) {
Zoo z = new Zoo();
z.tiger();
z.giraffe();
z.elephant();
//z.lion();
}
}
/*
무서운 호랑이
목이 긴 기린
뚱뚱한 코끼리
*/
package com.zoo.safari;
import com.zoo.Zoo;
public class Safari extends Zoo{
public static void main(String[] args) {
Zoo z = new Zoo();
z.tiger();
//z.giraffe(); //Super클래스로 생성하면 접근이 안된다
//z.elephant();
//z.lion();
Safari s = new Safari();
s.tiger();
s.giraffe();
}
}
/*
무서운 호랑이
무서운 호랑이
목이 긴 기린
*/
package com.apple;
import com.zoo.Zoo;
public class Apple {
public static void main(String[] args) {
System.out.println("빨간 사과");
//Zoo클래스의 tiger() 호출
Zoo z = new Zoo();
z.tiger();
//z.giraffe();
//z.elephant();
//z.lion();
}
}
/*
빨간 사과
무서운 호랑이
*/