무향향수

[Java]오버라이딩 본문

SW아카데미 (23)/JAVA

[Java]오버라이딩

튼튼한장 2023. 7. 6. 15:47

[Day4] 상속, 인터페이스와 다른 형식의 클래스, 예외처리

 

Chapter 7-3 오버라이딩

목차 🏀
  1. 어노테이션(Annotation)
  2. 오버라이딩(Overriding) 이란?
  3. 오버라이딩의 조건
  4. super

🏀 어노테이션(Annotation)

  • 코드 문법 확인을 위해 컴파일러에게 정보를 제공하는 것

 


🏀 오버라이딩(Overriding)

  • 조상 클래스로부터 상속받은 메서드 내용을 변경하는 것을 오버라이딩이라고 한다.
class Fruit{ // 부모클래스
    int count = 10;
    String name = "The name is";

    public String fruitName(){
        return "count : " + count + " and " + name;
        // count : 10 and The name is
    }
}

class Mango extends Fruit{
    String fruitName = "Mango";

    public String fruitName(){ // 부모 클래스의 메소드 오버라이딩
        return "count : " + count + " and " + name + " " + fruitName; 
        // count : 10 and The name is Mango
    }
}

 


🏀 오버라이딩(Overriding) 조건

조상 클래스의 메서드를 오버라이딩하는 자손 클래스는

  • 이름이 같아야한다.
  • 매개변수가 같아야 한다.
  • 반환타입이 같아야 한다.

 


🏀 super

super 키워드를 사용하여  조상클래스의 변수를 자손클래스에서 사용할 수 있다.

package JavaPra;

public class SuperTest {
    public static void main(String[] args) {
        Jelly j = new Jelly();
        j.Taste();
    }
}

class Snack{
    int flavor = 0;
}

class Jelly extends Snack{
    int flavor = 1000;
    public void Taste(){
        System.out.println(flavor); // Jelly (1000)
        System.out.println(this.flavor); // Jelly (1000)
        System.out.println(super.flavor); // Snack (0)
    }
}

 


 

super 키워드를 사용하여 위에서 작성한 Fruit, Mango코드를 아래와 같이 수정할 수 있다.

package JavaPra;

public class OverridingPra {
    public static void main(String[] args) {

        Mango m = new Mango();
        System.out.println(m.fruitName());

        Fruit f = new Fruit();
        System.out.println(f.fruitName());

    }
}

class Fruit{
    int count = 10;
    String name = "The name is";

    public String fruitName(){
        return "count : " + count + " and " + name;
    }
}

class Mango extends Fruit{
    String fruitName = "Mango";

    public String fruitName(){
        return super.fruitName() + " " + fruitName; 
        // 상속받은 Fruit의 fruitName() 메서드와 앞부분이 모두 동일하기 때문에 
        // super를 써서 호출해준다.
    }
}

 

 

더보기

내용 요약⭐

  • 오버라이딩이란, 상속받은 메서드의 내용을 변경하는 것을 말한다.
  • 오버라이딩을 하려면 조상과 자손 클래스 메서드의 이름, 매개변수, 반환타입이 동일해야한다.

 

더보기

❓질문

  1. 오버라이딩과 오버로딩의 차이가 무엇일까?
 

[Java]오버로딩

[Day4] 상속, 인터페이스와 다른 형식의 클래스, 예외처리 Chapter 7-3 오버로딩 목차 🔍 오버로딩(Overloading) 오버로딩의 조건 🏀 오버로딩(Overloading) 한 클래스 내에 같은 이름의 메서드를 여러 개

angidgidtn.tistory.com

 

'SW아카데미 (23) > JAVA' 카테고리의 다른 글

[Java]클래스 형변환  (1) 2023.07.07
[Java]추상클래스  (0) 2023.07.07
[Java]상속  (0) 2023.07.06
[Java]final 키워드  (0) 2023.07.05
[Java]인스턴스 멤버와 정적 멤버  (0) 2023.07.05