부모가 자식에게 물려주는 행위 :
부모 클래스 = 필드1 + 메소드1
|상속 ㅣ물려받음
자식 클래스 = 필드1 + 메소드1 + 필드2 + 메소드2 (자식 클래스에서 추가한 필드 + 메소드)
상속 = 이미 개발된 클래스 = 재사용 후 새로운 클래스 만듬.
이점 1) 중복되는 코드를 줄여 개발 시간 단축.
보다 효율적.
이점 2) 클래스의 수정 최소화. 부모를 수정하면 모든 자식 역시 수정되기 때문에!
부모 클래스의 필드 속 메소드를 자식 클래스의 필드에 익스텐즈 해서 필드와 메소드를 상속받음.
자바 = 다중 상속 허용 x
this. -> 이 클래스의 오브젝트가 생길 당시의 자기 자신인 오브젝트를 의미. 현재 클래스에 있는 멤버 변수와 메소드를 this라는 키워드로 접근 가능하다.
this = 참조 변수 : 자신이 포함된 클래스의 객체를 가리키는 참조변수.
super -> 부모 생성자는 자식 생성자의 맨 첫줄에 숨겨져 있는 super()에 의해 호출이 됨. 이건 컴파일 과정에서 자동 추가. 부모의 기본 생성자 호출.
❗부모 클래스에 기본 생성자가 없다면 자식 생성자 선언에서 컴파일 에러 발생.
생성자 =
package section11;
public class EX11-05 {
public static void main(String[] args) {
DeskCalendar dc = new DeskCalendar("보라색", 6);
//new 생성자로 heap 영역에 DeskCalendar라는 주소값을 가진 영역을 생성함과 동시에
보라색과 6이라는 값을 대입하고, dc라는 이름의 변수에 할당한다.
//클래스는 타입이다. DeskCalendar = 클래스명!
dc.info();
//dc. 닷 연산자로 dc라는 변수(필드)에서 info라는 메소드를 들고 온다.
메소드는 특정 기능을 수행한다.
dc.hanging();
dc.onTheDesk();
System.out.println();
Calender c= new DeskCalender("검은색", 12);
c.info();
c.hanging();
}
}

멤버 변수 : 클래스 영역에서 선언된 변수
지역 변수 : 메소드 영역에서 선언된 변수
class A {
// 클래스 영역
String name; // 멤버변수, 인스턴스멤버
static int age; // 멤버변수, 정적멤버
void method1(){
// 메소드 영역
String address = "서울특별시"; // 지역변수
}
}

Override -> 자식 클래스에 부모 클래스의 메소드를 재정의해서 사용하는 행위. 부모 클래스에서 수정하고 싶은 메소드를 따로 자식 클래스에서 재정의할 수 있다는 장점이 있다.