JAVA

객체지향 상속(inheritance)

연93 2022. 9. 25. 18:19
  • 기존의 클래스로 새로운 클래스를 작성하는 것. (코드의 재사용)
  • 두 클래스를 부모와 자식으로 관계를 맺어주는 것.
더보기

class 자식클래스 extends 부모클래스 {..}

class Parent {}

class Child extends Parent {..}

  • 자손은 조상의 모든 멤버를 상속 받는다.(생성자, 초기화 블럭 제외)
  • 자손의 멤버 개수는 조상보다 적을 수 없다. (같거나 많다.)
  • 자손의 변경은 조상에 영향을 미치지 않는다.

사용 예제

class Tv {
	boolean power; // 전원상태(on/off)
	int channel;   // 채널
	
	void power()	   { power = !power; }
	void channelUp()   {   ++channel;    }
	void channelDown() {   --channel;    }
}

부모 클래스 멤버 5개

class SmartTv extends Tv { 
	boolean caption;
	void displayCaption(String text) {
		if (caption) {
			System.out.println(text);
		}
	}
}

자식 클래스 멤버 2개 (부모 + 자식 = 7개)

public static void main(String[] args) {
		SmartTv stv = new SmartTv();
		stv.channel = 10;    // 조상 클래스로부터 상속받은 멤버
		stv.channelUp();
		System.out.println(stv.channel);
		stv.displayCaption("Hello, World");
		stv.caption = true; 
		stv.displayCaption("Hello, World");
	}
}

객체 사용