Java 에서 상속이란?

Posted by 대혀니_
2017. 6. 20. 21:42 PROGRAMING/Java

자바에서 상속은 기존의 class를 재사용하여 새로운 class를 작성하는것이다.


상속을 통해 보다 적은 양의 코드로 새로운 클래스롤 작성할 수 있고 코드를 공통적으로 관리할 수 있어 코드의 추가 및 변경(재활용)이 용이하다.


참고로 상속된 클래스를 또다시 상속 (다중상속) 이 가능하나 이는 다루지 않겠다.


상속의 예시 1


class a {
	String name;
	int	number;
}

public class Example {
	public static void main(String[] args){
		a obj = new a();
		obj.name = "이름";
		obj.number = 123;
		
		System.out.println(obj.name);
		System.out.println(obj.number);
	}
}


서브 클래스가 같은 패키지에 속할 경우 상속 예시 (extends)


class a {
	String name;
	int	number;
}

public class Example extends a {
	public static void main(String[] args){
		name = "이름";
		number = 123;
		
		System.out.println(name);
		System.out.println(number);
	}
}


클래스에는 접근 지정자를 지정할수 있는데 접근 지정자가 선언되어 있지 않으면 default 접근지정자라고 한다.


class a {
	private String name;
	protected int number;
	public int n2;
	int n3;
}

public class Example extends a {
	public static void main(String[] args){
		name = "이름"; //Error
		number = 123;
		n2 = 123;
		n3 = 123;
		
		System.out.println(name);
		System.out.println(number);
	}
}


슈퍼 클래스 (본클래스) 와 서브클래스가 같은 패키지에 있을경우 private 제외 참조가능하며

패키지가 다르면 default 접근 지정에도 접근이 불가하다.


이를 표로보면 다음과 같다.

접근 지정자

클래스

패키지

자식클래스

전체 세계

public

O

O

O

X

protected

O

O

X

O

없음

O

X

O

O

private

X

O

O

O