상속개념 추가 정리 : 기본 생성자, Overriding

문세연·2024년 8월 27일

JAVA

목록 보기
6/19

상속

부모가 자식에게 물려주는 행위 :

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

profile
안녕하세용!

0개의 댓글