상속(Inheritance)
한 클래스의 속성과 메소드를 다른 클래스가 물려받는 것
기존의 클래스를 재사용해 새로운 클래스를 작성
코드의 재사용성, 중복 제거(프로그램의 생산성 향상)
상속 구형 방법
extends (확장하다) 키워드를 사용하여 구현
class 자식클래스명 extends 부모클래스 {}
class Parent {} // 부모 클래스(기존 클래스)
class Child extends Parent {} // 자식 클래스(새로운 클래스)
상속해주는 클래스: 조상, 부모, 상위, 기반, 슈퍼 클래스
상속받는 클래스: 자손, 자식, 하위, 파생, 서브 클래스
동물 클래스
class Animal{
String name;// 동물의 이름
}
class Dog extends Animal{
// 부모 클래스의 속성과 메소드를 모두 상속 받음(생략된 것과 같음)
// String name;
// 클래스의 확장
void bark() {
System.out.println("강아지가 짖습니다");
}
}
TV 클래스
class Tv {
// 속성
boolean power;// 전원 상태 on/off
int channel;// 체널 번호
// 행위
// 전원을 설정, 채널 이동(업/다운)
void setPower() {
power = !power;
}
void channelUp() {
++channel;
}
void channelDown() {
--channel;
}
}
상속 활용
public class B_Inheritance {
public static void main(String[] args) {
Dog choco = new Dog();
choco.name = "초코";
System.out.println(choco.name);// 초코
choco.bark();// 강아지가 짖습니다
Tv tv1 = new Tv();
tv1.power = true;
tv1.channelUp();
tv1.channelUp();
tv1.channelUp();
System.out.println(tv1.channel);// 3
SmartTv smartTv1 = new SmartTv();
smartTv1.power = true;
smartTv1.channelDown();
smartTv1.channelDown();
smartTv1.channelDown();
smartTv1.channelDown();
smartTv1.channelDown();
System.out.println(smartTv1.channel);// -5
smartTv1.displayOtt("Netflix");// ott 연결이 되지 않았습니다
smartTv1.ott = true;
smartTv1.displayOtt("Netflix");// Netflix\
//tv1.ott = true; >> 부모는 자식의 기능과 행위를 전달받지 못함
}
}
'java' 카테고리의 다른 글
실습) 학생 관리 시스템 (0) | 2025.02.25 |
---|---|
20. 오버라이딩 (0) | 2025.02.25 |
18. 생성자 (0) | 2025.02.25 |
실습) 오버로딩 연습 (0) | 2025.02.25 |
17. 메소드-4 오버로딩 (0) | 2025.02.25 |