관리 메뉴

Frog is cry

protected(day21) 본문

JAVA/국비수업

protected(day21)

Frog is cry 2020. 7. 28. 17:44

패키지1

package day22.ex02;

public class A {
	protected String field;
	
	protected A() {
	}
	protected void method() {
	}
	
}
package day22.ex02;

public class B {
	public void method() {
		A a = new A();
		a.field = "value";
		a.method();
	}
}

패키지2

package day22.ex02_2;

import day22.ex02.A;

/* C 클래스는 A 클래스와 다른 패키지에 있다.
 * default 접근제한과 마찬가지로 C 클래스의 생성자와 메소드에서는
 * A 클래스의 protected 필드, 생성자, 메소드에 접근할 수 없다.
 */

public class C {
//	A a = new A();
//	a.filed = "value";
//	a.method();
	
}
package day22.ex02_2;

import day22.ex02.A;

/* 다음 D 클래스는 A 클래스와 다른 패키지에 있다.
 * C 클래스와는 달리 D는 A의 자식 클래스 이다. 그렇기 떄문에
 * A 클래스의 protected 필드, 생성자, 메소드에 접근이 가능하다.
 * 단 new 연산자를 사용해서 생성자를 직접 호출할 수는 없고
 * 자식 생성자에서 super() 로 A 생성자를 호출할 수 있다.
 */

public class D extends A{
	public D() {
//		super();
		this.field = "value";
		this.method();
	}
}

'JAVA > 국비수업' 카테고리의 다른 글

다형성, instanceOf(Day22)  (0) 2020.07.30
캐스팅(day22)  (0) 2020.07.29
final(day21)  (0) 2020.07.28
오버라이딩(day20)  (0) 2020.07.27
super(day20)  (0) 2020.07.27
Comments