Java(클래스의 상속)
2023. 3. 6. 20:19ㆍWEB개발/TIL
반응형
클래스의 상속
: 부모 클래스에서 정의된 필드와 메서드를 자식 클래스가 물려받는 것
장점
멤버의 중복 작성 제거
클래스의 계층적 분류 가능
클래스의 재사용성과 확장성 용이
클래스 상속 예시

부모/슈퍼클래스: ex) Person
자식/서브클래스: ex) Student
상속문법
1. extends 키워드 사용
// Person 클래스
public class Person {
}
// Student 클래스는 Person클래스의 상속을 받음
public class Student extends Person {
}
2. super() 메서드: 자식클래스에서 부모클래스 생성자 호출하는 메서드
// Person 클래스
public class Person {
private String name;
public Person(String name) {
setName(name);
}
}
// Student 클래스
public class Student extends Person {
public Student(String name) {
// 부모클래스 생성자 호출
super(name);
}
}
참고) 부모클래스 생성자
부모클래스에서 생성자가 하나도 없는 경우, 자동으로 (기본)생성자가 만들어짐
ex) public Person() { }
<-> 부모 클래스에서 생성자가 존재하는 경우, 기본 생성자가 생성되지 않음
3. 메서드 오버라이딩
: 부모클래스에서 정의한 메서드를 자식클래스에서 다시 정의하는 것(=덮어쓰기)
중요! 함수의 원형이 정확히 일치해야 함
- 함수명, 매개변수 타입 및 개수, 리턴 타입 등
// Animal 클래스
public class Animal {
public void makeSound() {
System.out.println("동물은 소리를 낸다");
}
}
// Cat 클래스
public class Cat extends Animal {
public void makeSound() {
System.out.println("냐옹");
}
}
// Dog 클래스
public class Dog extends Animal {
public void makeSound() {
System.out.println("멍멍");
}
}
// Main 클래스
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
Cat cat = new Cat();
Dog dog = new Dog();
animal.makeSound(); // 동물은 소리를 낸다
cat.makeSound(); // 냐옹
dog.makeSound(); // 멍멍
}
}
반응형
'WEB개발 > TIL' 카테고리의 다른 글
Spring 정의, Spring Boot, Thymeleaf 문법 (0) | 2023.03.21 |
---|---|
Java(추상클래스, 인터페이스) (0) | 2023.03.09 |
Java(Array, Class) (0) | 2023.03.06 |
Java(개발환경구축, 프로젝트 생성, 기본 문법) (0) | 2023.03.06 |
Express 모듈 (2) | 2022.11.23 |