728x90
객체지향 프로그래밍의 특징(캡슐화/상속/다형성/추상화)
상속(Inheritance)
: 클래스 생성시 부모클래스의 속성을 자식 클래스가 물려받는 것.
상위 클래스의 특성을 하위 클래스가 이어받아서 재사용하거나 추가, 확장하는 것.
상속받은 클래스를 정의하기 위해선 extends 키워드와 함께 상속받고 싶은 부모클래스명을 적어주면 된다.
public class 클래스명 extends 부모클래스명 {
--- 내용 구현 ---
}
부모클래스를 상속받은 자식클래스의 인스턴스는 부모클래스의 멤버와 자식클래스의 멤버를 모두 가지고 생성된다.
부모클래스 멤버는 접근지정자에 따라 자식클래스 접근 범위가 달라진다.
public / protected | 자식클래스 어디서나 부모클래스에 직접 접근하여 사용 가능 |
private | 자식클래스에서 부모클래스에 직접 접근하여 사용 불가 |
default | 동일 패키지에 있는 자식클래스에서는 접근 가능하나, 다른 패키지에 있는 자식 클래스에서는 직접 접근 불가 |
- 자바에서는 다중 상속 지원X (하나의 상속만 가능)
- 자바의 모든 클래스는 최상위에 Object 클래스를 기본적으로 가지고 있다.
public class Person { // 부모클래스
String name;
private int age;
public void speak() {
System.out.println("저는 " + name + "입니다.");
}
}
class Move extends Person { // 자식클래스 (Person을 상속받음)
public void walk() {
System.out.println(name + ": 움직입니다.");
}
}
public class HelloWorld {
public static void main(String[] args) {
Move move = new Move();
move.name = "dropdew";
move.speak();
move.walk();
}
}
//실행결과: 저는 dropdew입니다.
//실행결과: dropdew: 움직입니다.
728x90
'BE' 카테고리의 다른 글
[Java] 오버로딩(Overloading) vs 오버라이딩(Overriding) (2) | 2024.03.12 |
---|---|
[Java] 추상화(Abstraction)의 개념과 예제 (1) | 2024.03.11 |
[Java] 캡슐화(Encapsulation)의 개념과 예제 (0) | 2024.03.11 |
[Javascript] js remind (0) | 2022.12.13 |
[javascript] 기본문법 (1) | 2022.11.30 |