모바일 개발하는 자바리안의 메모장

자바(JAVA) - 상속(inheritance) 본문

Java/Java.study

자바(JAVA) - 상속(inheritance)

자바리안 2016. 8. 6. 15:45
반응형

상속 관계에 있는 2개의 클래스는

부모 클래스(parent class), 자식 클래스(child class)로 나뉜다.

명칭 그대로, 상속을 해준 클래스가 부모 클래스,

그리고 받은 클래스가 자식 클래스다.


상속은 말 그대로, 물려받는 것을 의미한다.

그러므로, 부모 클래스의 정보(instance variable)와 기능(method)를 물려받는 것이다.


class Dog extends Animal {
	String sound = "멍멍";
}

class Animal {
	boolean fromEgg;
	int numOfLegs;
	String name;

	public void hunt() {
	System.out.print("사냥 중");
	}
}

개는 동물에 포함되어 있으므로 위와 같이 상속관계가될 수 있다.

동물 클래스를 상속받은 개 클래스는 동물 클래스의 모든 기능 및 정보를 사용할 수 있게된다.

상속 관계 구현은 extends 예약어로 가능하다.


Dog 객체 자체는 hunt 메소드가 없어도, 상위 클래스가 같고 있기 때문에 언제든지 호출할 수 있다.

Dog ge = new Dog();
ge.hunt() // 부모 클래스(Animal)에 존재하는 hunt() 호출

자식 클래스는 부모 클래스의 메소드를 아래와 같이 호출할 수 있다.

super.hunt() // Dog 클래스 내부


개 클래스 외, 고양이, 너구리 등 여러 동물들의 클래스를 만들었단 가정 하에,

동물 클래스가 없었다면 우리는 각 클래스에 일일이 중복되는 기능과 인스턴스 변수를 추가해야했을 것이다. (넘나 편리한 것)


최대 1개 클래스를 상속 받을 수 있으며,

(부모 클래스에서)protected 접근 제어자 사용을 통해, 

자식 클레스를 메소드, 변수 사용 허용 범위로 설정할 수 있다.


반응형
Comments