프로그래밍/JAVA

Java - 상속[extends]

개발자 덕구🐾 2021. 8. 29. 21:24
728x90

1. 상속이란?

기존의 클래스에 extends 키워드를 이용해 재사용하여 새로운 클래스를 만드는 것이다.

재사용을 하며 그대로 사용할수도 있고, 새로운 멤버를 추가할수도 있다.

코드의 재사용성이 높으며 변경 및 추가가 용이하다. 

 

 

기존의 클래스를 부모클래스, 상속을 받아 생성된 클래스를 자식클래스라고 한다. 

자식클래스는 부모클래스의 모든 멤버를 상속받는다!

 

 

Java에서는 한개의 클래스만을 부모 클래스로 갖는 단일상속만 가능한다. 

 

상속관계를 [Is - a ]관계라고 한다.

ex ) 원 도형이다.  치타 동물이다. 

 

2. 예제 코드

class Tv{ // 부모 클래스
	boolean power;
	int channel;
	
	void power() {
		power = !power;
	}
	void channelUp(){
		channel++;
	}
	void channelDown() {
		channel--;
	}
}

class SmartTv extends Tv{ // Tv라는 부모클래스에서 상속받은 자식클래스 SmartTv //캡션 기능 추가
	boolean caption;
	void display(String text) {
		if(caption)  // caption이 true이면 
			System.out.println(text);
	}
}
	
public class Ex7_1 {

	public static void main(String[] args) {
		SmartTv stv = new SmartTv();
		stv.channel = 10;
		stv.channelUp(); // 부모 클래스로부터 상속받은 메서드 // 11이 출력
		System.out.println(stv.channel);
		
		stv.caption = true;
		stv.display("Hello, world!");

	}
}

 

SmartTv는 Tv라는 부모클래스를 상속받는 자식클래스이다. 

 

SmartTv stv = new SmartTv(); 를 이용해 자식 클래스의 객체를 생성한다. 

자식클래스는 부모클래스의 모든 멤버를 상속받으므로 

부모클래스인 Tv의 멤버를 이용할수있다. 

 

자식클래스의 객체인 stv는 Tv클래스(부모 클래스) 에 있는

channl 변수와 channelUp, channelDown 메서드를 이용할수있다.

 

 

상속!

 

코드의 실행결과

 

 

10으로 지정되어있던 채널은 1이 증가하여 11을 출력하였다. 

caption이 true가 되어서 display되었다. 

반응형