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 접근 제어자 사용을 통해,
자식 클레스를 메소드, 변수 사용 허용 범위로 설정할 수 있다.
반응형