본문 바로가기

언어/자바

overide vs overoad vs 상속

오버로드 : 같은 메서드명에 ()안에 서로 다른 타입이거나 개수가 다른게 여러개....

오버라이드 : @Overload라는 어노테이션을 선언하기 컴파일러가 검증? 하여 이 메서드는 어버라이드 했구나 판단, 부모의 메서드를 사용하지 않고 오버라이드 된 자식의 메서드를 사용함

 

-> 오버라이드는 부모의 것을 버리고, 자식의 것이 출력된다.

super는 부모의 참조변수이다.

this는 자식의 참조변수이다.

 

 

부모 상속을 받았다. ( 자식 것 출력 )

// 재정의
public String printInfo() {
return "이름 : " + name + "\n" +
"스피드 : " + speed + "\n" +
"가격 : " + price + "\n" +
"설명 : " + descirption;
}


@Override
public String printInfo() {
return "이름 : " + super.getName() + "\n" +
"스피드 : " + super.getSpeed() + "\n" +
"가격 : " + super.getSpeed() + "\n" +
"설명 : " + super.getDescirption() + "\n" +
"차 종류 : " + kind + "\n" +
"연료 종료 : " + fueltype + "\n";
}


그래도 자식 것을 출력하고 싶다면,
@Override
public String printInfo2() {
return super.printInfo2();
}


 

 

상속

1. 물려받는거(잘못된 표현)

     -> 사실 독립적으로 자식들에게 중복해서 각기 name, age 등을 줄 수 있다.

2. 부모 클래스에 공통된 속성들을 놓아두기

    -> 즉, User 클래스에 name, age 등 공통으로 들어가는 속성들을 상속받아서 사용하는 것

3. 상위 클래스(부모)에 공통된 속성들을 모아두고 자식 클래스에서 상속받아서 쓰는 것

 

 

 

생략을 해두 모관

- 디폴트 생성자

- 부모를 가리키는 참조변수 super

 

// 자식 클래스가 판단, 공통인 것을 부모로부터 extend해서 사용하기

'언어 > 자바' 카테고리의 다른 글

인터페이스 vs 추상클래스  (0) 2025.06.04
다운케스팅, 다형성  (0) 2025.06.02
static - 핵심  (0) 2025.05.29
Call by Value vs Call by Reference  (0) 2025.05.29
참조변수  (0) 2025.05.28