오버로딩 과 오버라이딩

이동규·2023년 4월 21일

JAVA

목록 보기
4/7

오버로딩과 오버라이딩

c언어에서는 함수명이 고유하게 존재한다. 하지만 자바에서는 동일한 메소드의 이름으로 여러가지 기능을 구현할 수있다. 그것은 오버로딩이다.부모클래스에서 상속받은 메소드를 자식클래스에서 재정의 하는 것 자식 클래스에서 상황에 맞게 변경하는 것이다.자식 클래스에서 오버라이딩하고자 하는 메소드의 이름 매개변수 리턴 값이 모두 같아야한다.

class 자식 클래스 extends 부모 클래스{
}  

super 키워드 부모 클래스로 부터 상속받은 필드나 메소드를 자식 클래스에서 참조 할 때 사용돤다.

class Person {
    String name ;
    int age ;
    Person(String name ,int age){ //생성자 메소드
        this.name = name;
        this.age = age;
    }
    void talk(){
        System.out.println("안녕하세요 인간입니다");
    }
    void search(){
        System.out.println(name +' '+ age);
       }
}

class Child extends Person { // Person의 자식 클래스 
    String name="baby";
    int age = 5;
    
   void talk(){
    System.out.println("응애응애");// 오버라이딩
   }

   void talk(String a){
    System.out.println(a);// 오버로딩
   }
   
   
   Child(String name ,int age){
    super(name , age);// 부모클래스의 인스턴스변수의 값을 변경
    }
   void search(){
    System.out.println(name +' '+ age);
   }
   void persontalk(){
    super.talk();// 부모클래스의 talk 함수 참조
   	super.search();// 부모클래스의 search 함수 참조
   }
   

   
    
    

}

class Senior {
    String name;
    Senior(String name){
     this.name = name;
        

    }
}

public class week3 {
    public static void main(String[] args) {
       Child child = new Child("이동규", 25);
       child.search();
       child.persontalk();
   
        
    }
}

0개의 댓글