Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 코린이
- JPA
- java기초
- git commit취소
- 한번에insert하기
- 자바
- qclass
- 오버라이딩
- 0으로변환
- 기초
- java
- 네트워크
- 다운캐스팅
- 파비콘에러
- 스프링시큐리티
- 웹동작방식
- 스프링부트
- 웹스토리지 사용법
- 형변환
- 레포지토리설계
- 업캐스팅
- MySQL
- http
- 상속
- 프로젝트
- static
- 생성자
- Git
- 메소드
- 엔티티설계
Archives
- Today
- Total
딱콩이의 봄
상속(Inheritance) 본문
✔️상속은 연관 있는 클래스들에 대해 공통적인 구성요소를 정의하고, 이를 대표하는 클래스를 정의하는 것을 의미합니다.
✔️상속 관계는 "is a" 관계를 의미하며 extends 키워드를 이용해 상속 관계를 정의합니다.
✔️상속 관계에서 상속을 받는 클래스를 sub class, derived class, child class, extended class 라 합니다.
✔️상속 관계에서 상속을 제공하는 클래스를 super class, base class, parent class 라 합니다.
public class Manager extends Employee {
//필드 및 메소드
}
✔️자식클래스는 부모 클래스를 상속받아 부모 클래스의 모든 자원(속성, 메서드)을 사용할 수 있습니다.
✔️자식 클래스는 부모클래스에 없는 필드와 메서드를 정의하여 기능을 추가할 수 있습니다.
또한, 상위클래스에 정의된 메서드를 재정의하여 다르게 동작시킬 수 있습니다.(오버 라이딩)
public class Employee {
private String name;
private double salary;
public Employee(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public String getName() {
return name;
}
}
public class Manager extends Employee { //Employee 상속
private double bonus;
public Manager(String name) {
super(name);
}
public void setBonus(double bous) {
this.bonus = bonus;
}
public double getSalary() { //오버라이딩
return super.getSalary() + bonus;
}
}
✔️상속 대상이 되는 부모 클래스에 protected 접근 제한자로 정의된 구성요소는 자식 클래스 구성요소가 됩니다.
✔️자식 클래스는 부모 클래스의 protected, public 구성요소에 대해 this 접근이 가능합니다.
즉 상속관계에서 자식 클래스는 부모 클래스에서 제공하는 구성요소들을 자신의 구성요소로 포함합니다.
✔️부모 클래스의 private 구성요소는 자식 클래스에서 직접 접근할 수 없습니다.
# : protected로 정의 , - : private으로 정의 , + : public으로 정의
public class Shape {
protected int x;
protected inty;
protected Color color;
public void draw() {
System.out.println("Drawing Shape");
}
}
public class Rectangle extends Shape {
private int width;
private int height;
public void resize(int width, int height) {
this.width = width;
this.height = height;
}
public void move(int x, int y) {
this.x = x;
this.y = y;
}
}
🧐Reference
'개발 > JAVA' 카테고리의 다른 글
오버라이딩(Overriding) (0) | 2022.08.30 |
---|---|
상속 관계의 초기화 과정 (0) | 2022.08.30 |
static & final 💡💡 (0) | 2022.08.29 |
static & final💡 (0) | 2022.08.29 |
JAVA 메모리 모델 (0) | 2022.08.29 |
Comments