Java 기초 상속(3) - static
728x90
기본 환경
JDK : 1.8.0_261 버전 JRE : 1.8.0_261 버전 JAVA VERSION : 8 업데이트 261 Eclipse IDE VERSION : 2020-06버전 |
목표
상속받았을 때 static을 사용하는 법을 이해한다.
코드
package ex12inheritance;
/*
static(정적) 타입의 맴버도 상속이 되고 , 하위 클래스에서 접근할때는
맴버변수의 이름만으로 접근이 가능하다.
단, 클래스 외부에서 접근할 경우 객체생성 없이 클래스명을 통해서도
접근이 가능하다. 즉 static이 가진 기본적인 규칙을 그대로 따른다.
*/
class Adder {
public static int val = 0;
/*
static으로 선언되 맴버변수는 실제로는 외부(메소드 영역)에
생성되어 있으므로 클래스명을 통한 접근이 허용된다.
코드 레벨에서 보면 해당 클래스의 맴버변수으므로 변수명만으로
접근하는 것도 가능하다.
*/
public void add(int num) {
val += num;
Adder.val += num;
}
}
//자식 클래스의 맴버메소드는 모두 실행가능한 코드임. 접근의 문제 없음.
class AdderFriend extends Adder{
public void friendAdd(int num) {
val += num;
Adder.val += num;
}
public void showVal() {
System.out.println("val = " + val);
System.out.println("val = " + Adder.val);
}
}
public class E03StaticInheritance {
public static void main(String[] args) {
Adder ad = new Adder();
AdderFriend adFriend = new AdderFriend();
ad.add(1);
adFriend.friendAdd(3);
Adder.val += 5;
AdderFriend.val += 7;
adFriend.showVal();
}
}
원래의 static 규칙과 똑같습니다. 다만 상속받았을 경우 클래스명을 구지 쓰지 않아도 된다는 특징이 있습니다.
결과 값
'Java > Java_기초부터 _끝까지' 카테고리의 다른 글
Java 기초 상속(5) - 경찰과 총의 소유관계 (0) | 2020.11.24 |
---|---|
Java 기초 상속(4) - 컴퓨터 상속 구조 (0) | 2020.11.24 |
Java 기초 상속(2) - 접근제어 (0) | 2020.11.18 |
Java 기초 상속(1) - 기본개념 (0) | 2020.11.18 |
Java 기초 static(3) - 싱글톤 디자인 패턴 (0) | 2020.11.17 |