기존의 클래스를 재활용 하여 새로운 클래스를 작성하는 자바의 문법 요소
Ex) 두 클래스를 상위클래스와 하위클래스로 나누어 상위 클래스의 멤버(필드, 메서드, 이너클래스)를 하위 클래스와 공유 하는 것을 의미함.
하위 클래스의 멤버 개수는 항상 상위 클래스보와 같거나 많다.
Programmer, Dancer, Singer 모두 Person 클래스의 멤버를 포함하고 있으며 서로 다른것은 coding(), dancing(), singing() 뿐이다. 그러므로 Person이라는 상위 클래스에 3개의 하위 클래스이다.
자바의 객체지향프로그램에서는 단일 상속만 허용, 다중상속은 허용하지않음.(다중 상속과 비슷한 효과를 낼 방법은 있음)
하위 클래스명 extends 상위 클래스명
public class Person {
String name;
int age;
void learn() {
System.out.println("공부를 합니다");
}
void walk(){
System.out.println("걷습니다");
}
void eat(){
System.out.println("밥을 먹습니다");
}
}
public class Programmer extends Person {
String companyName;
void coding() {
System.out.println("코딩을 합니다");
}
}
public static void main(String[] args) {
Person p = new Person();
p.name = "버즈";
p.age = 29;
p.learn();
p.eat();
p.walk();
System.out.println(p.name);
Programmer pg = new Programmer();
pg.name = "라이트이어";
pg.age = 25;
pg.learn();
pg.coding();
System.out.println(pg.name);
}
공부를 합니다
밥을 먹습니다
걷습니다
버즈
공부를 합니다
코딩을 합니다
라이트이어