728x90
반응형
클래스 상속
두 클래스가 상속관계에 있을 때 상속되는 클래스를 부모 클래스 혹은 상위 클래스라 부르고 상속 받는 클래스를 자녀 클래스 혹은 하위 클래스라 부른다.
하위 클래스는 상위 클래스의 public, protected로 선언된 멤버(변수, 메서드)들을 상속받아 사용하거나 재정의 할 수 있다.
상속을 할 때는 extends 지시자를 사용한다.
1. 메인 클래스(Dongmul 클래스, Sae 클래스, Saram 클래스)
public class Main {
public static void main(String args[]) {
System.out.println(new Dongmul());
Dongmul d = new Dongmul();
d.move();
Sae s = new Sae();
s.move();
Saram sa = new Saram();
System.out.println(sa);
sa.move();
}
}
2. Dongmul 클래스
public class Dongmul {
public void move() {
System.out.println("동물이 이동합니다.");
}
}
3. Sae 클래스
public class Sae extends Dongmul { // extends 상속하기(확장) 위한 명령어, Dongmul에 상속됨, 반드시 포함하는 관계
public void move() {
super.move();
System.out.println("새가 난다."); // 수정, 덮어쓰기 방식으로 수정됨
}
}
4. Saram 클래스
public class Saram extends Dongmul { // extends 강하게 연결됨
// Dongmul d; // 객체의 관계가 해제일 때 이렇게 표현함, 사람이 동물을 도구(종속관계)로 씀, extends를 쓰는 것이 더 좋음
Dogu d;
Saram() {
// d=new Dongmul(); // 동물속성을 가질 수도 있고 안가질 수도 있음(선택적 포함)
d= new Dogu();
}
public void move() {
super.move();
System.out.println("사람이 걸어 간다.");
d.use();
}
}
Saram 클래스는 Dongmul 클래스에 extends한다.
5. Dogu 클래스
public class Dogu {
public void use() {
System.out.println("도구를 사용합니다.");
}
}
728x90
반응형
'즐거운프로그래밍' 카테고리의 다른 글
[자바] 상속 extends와 private 함수를 사용한 예제 1 (0) | 2023.10.17 |
---|---|
[자바] 클래스 메서드 오버로딩(overloading) (0) | 2023.10.17 |
[자바] 노트패드++ 예제 (자전거 클래스) (0) | 2023.10.16 |
[자바] 노트패드++ String 클래스 (0) | 2023.10.16 |
[자바] 노트패드++ 다차원 배열 (1) | 2023.10.16 |